CVE-2016-10195
Critical · 9.8CVSS
9.8
EPSS
6.7%
Published
Mar 15, 2017
CISA due date
—
Cloudanix analysis
A bug in a widely used networking helper library lets remote attackers crash programs or peek at internal memory without any login or special access.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Out-of-bounds stack read in name_parse triggered by attacker-controlled label_len values during DNS name parsing, enabling memory disclosure or process crash.
Why it matters to the business
Applications relying on libevent for event-driven networking (DNS, HTTP proxies, etc.) face remote denial-of-service or information leakage; widespread library use means many services remain exposed years after disclosure.
How an attack unfolds
Attacker sends a crafted DNS response or query containing malformed labels with excessive or negative length fields; the vulnerable name_parse function reads beyond the allocated stack buffer when processing label_len, disclosing adjacent stack memory or causing a crash.
How to fix it
Upgrade libevent to a build containing commit 96f64a022014a208105ead6c8a7066018449d86d (equivalent to 2.1.6-beta or later); rebuild and redeploy all dependent applications; verify no custom static builds remain.
How to confirm the fix worked
Confirm installed libevent version or source contains the referenced commit; recompile dependent software against the fixed library and run regression tests exercising evdns name parsing paths.
Typical attack path
- Identify services using vulnerable libevent versions for DNS resolution
- Craft malicious DNS packets with oversized or invalid label lengths
- Deliver packets to the target over the network
- Trigger out-of-bounds read in evdns.c name_parse
- Observe crash for DoS or harvest leaked stack contents for further attacks
How to detect it
Review application and system logs for unexpected crashes or restarts of processes linked against libevent during DNS activity; inspect network captures for anomalous DNS responses with unusual label structures; correlate with process core dumps showing stack corruption near evdns handling.
What your security team should do
- Immediately inventory all systems and containers using libevent and schedule upgrades to the fixed commit
- Prioritize internet-facing services accepting DNS or using evdns
- Add libevent version checks to build pipelines and dependency scanners
- Monitor for new exploit code given public exploit availability
The record
The name_parse function in evdns.c in libevent before 2.1.6-beta allows remote attackers to have unspecified impact via vectors involving the label_len variable, which triggers an out-of-bounds stack read.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.11 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.12 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.13 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.14 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.15 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.16 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.17 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.18 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.19 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.2 | libevent | 0 | 2.0.22-r1 |
| Alpine:v3.20 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.21 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.22 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.3 | libevent | 0 | 2.0.22-r1 |
| Alpine:v3.4 | libevent | 0 | 2.0.22-r1 |
| Alpine:v3.5 | libevent | 0 | 2.0.22-r2 |
| Alpine:v3.6 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.7 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.8 | libevent | 0 | 2.1.8-r0 |
| Alpine:v3.9 | libevent | 0 | 2.1.8-r0 |
| Debian:11 | libevent | 0 | 2.0.21-stable-3 |
| Debian:12 | libevent | 0 | 2.0.21-stable-3 |
| Debian:13 | libevent | 0 | 2.0.21-stable-3 |
| Debian:14 | libevent | 0 | 2.0.21-stable-3 |
| Debian:7 | libevent | 0 | 2.0.19-stable-3+deb7u2 |
| Debian:8 | libevent | 0 | 2.0.21-stable-2+deb8u1 |
| Mageia:5 | libevent | 0 | 2.0.22-1.1.mga5 |
| Red Hat:enterprise_linux:6::client | firefox | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::client | firefox-debuginfo | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::client | thunderbird | 0 | 0:52.1.0-1.el6_9 |
| Red Hat:enterprise_linux:6::client | thunderbird-debuginfo | 0 | 0:52.1.0-1.el6_9 |
| Red Hat:enterprise_linux:6::computenode | firefox | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::computenode | firefox-debuginfo | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::server | firefox | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::server | firefox-debuginfo | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::server | thunderbird | 0 | 0:52.1.0-1.el6_9 |
| Red Hat:enterprise_linux:6::server | thunderbird-debuginfo | 0 | 0:52.1.0-1.el6_9 |
| Red Hat:enterprise_linux:6::workstation | firefox | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::workstation | firefox-debuginfo | 0 | 0:52.1.0-2.el6_9 |
| Red Hat:enterprise_linux:6::workstation | thunderbird | 0 | 0:52.1.0-1.el6_9 |
| Red Hat:enterprise_linux:6::workstation | thunderbird-debuginfo | 0 | 0:52.1.0-1.el6_9 |
| Red Hat:enterprise_linux:7::client | firefox | 0 | 0:52.1.0-2.el7_3 |
| Red Hat:enterprise_linux:7::client | firefox-debuginfo | 0 | 0:52.1.0-2.el7_3 |
| Red Hat:enterprise_linux:7::client | thunderbird | 0 | 0:52.1.0-1.el7_3 |
| Red Hat:enterprise_linux:7::client | thunderbird-debuginfo | 0 | 0:52.1.0-1.el7_3 |
| Red Hat:enterprise_linux:7::server | firefox | 0 | 0:52.1.0-2.el7_3 |
| Red Hat:enterprise_linux:7::server | firefox-debuginfo | 0 | 0:52.1.0-2.el7_3 |
| Red Hat:enterprise_linux:7::server | thunderbird | 0 | 0:52.1.0-1.el7_3 |
| Red Hat:enterprise_linux:7::server | thunderbird-debuginfo | 0 | 0:52.1.0-1.el7_3 |
| Red Hat:enterprise_linux:7::workstation | firefox | 0 | 0:52.1.0-2.el7_3 |
| Red Hat:enterprise_linux:7::workstation | firefox-debuginfo | 0 | 0:52.1.0-2.el7_3 |
| Red Hat:enterprise_linux:7::workstation | thunderbird | 0 | 0:52.1.0-1.el7_3 |
| Red Hat:enterprise_linux:7::workstation | thunderbird-debuginfo | 0 | 0:52.1.0-1.el7_3 |
| SUSE:Linux Enterprise Desktop 12 SP2 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libevent | 0 | 1.4.5-24.24.3.1 |
| SUSE:Linux Enterprise Server 12 SP2 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Server 12 SP3 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libevent | 0 | 1.4.5-24.24.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libevent | 0 | 1.4.5-24.24.3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | libevent | 0 | 2.0.21-6.3.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | libevent | 0 | 2.0.21-6.3.1 |
| Ubuntu:14.04:LTS | firefox | 0 | 53.0+build6-0ubuntu0.14.04.1 |
| Ubuntu:14.04:LTS | libevent | 0 | 2.0.21-stable-1ubuntu1.14.04.2 |
| Ubuntu:14.04:LTS | thunderbird | 0 | 1:52.1.1+build1-0ubuntu0.14.04.1 |
| Ubuntu:16.04:LTS | firefox | 0 | 53.0+build6-0ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | libevent | 0 | 2.0.21-stable-2ubuntu0.16.04.1 |
| Ubuntu:16.04:LTS | thunderbird | 0 | 1:52.1.1+build1-0ubuntu0.16.04.1 |
Related vulnerabilities
- CVE-2014-6272 Multiple integer overflows in the evbuffer API in Libevent 1.4.x before 1.4.15, 2.0.x… Also affects libevent
- CVE-2020-16012 Side-channel information leakage in graphics in Google Chrome prior to 87.0.4280.66… Also affects firefox
- CVE-2020-26950 In certain circumstances, the MCallGetProperty opcode can be emitted with unmet… Also affects firefox
- CVE-2020-15673 Mozilla developers reported memory safety bugs present in Firefox 80 and Firefox ESR 78.2. Also affects firefox
- CVE-2020-15652 By observing the stack trace for JavaScript errors in web workers, it was possible to… Also affects firefox
- CVE-2020-12387 A race condition when running shutdown code for Web Worker led to a use-after-free… Also affects firefox
- CVE-2020-6819 Under certain conditions, when running the nsDocShell destructor, a race condition can… Also affects firefox
- CVE-2020-6820 Under certain conditions, when handling a ReadableStream, a race condition can cause a… Also affects firefox