CVE-2017-14491
Critical · 9.8CVSS
9.8
EPSS
86.5%
Published
Oct 4, 2017
CISA due date
—
Cloudanix analysis
A flaw in a common DNS tool lets attackers remotely crash systems or take them over by sending bad network replies, so organizations should update the software right away.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Network Service
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Heap-based buffer overflow in dnsmasq triggered by a crafted DNS response that allows remote attackers to crash the service or execute arbitrary code.
Why it matters to the business
Attackers can take over affected systems or disrupt DNS services; high likelihood of exploitation combined with public exploit code increases urgency for any dependent services even years after disclosure.
How an attack unfolds
An attacker sends a specially crafted DNS response to a vulnerable dnsmasq instance; the response overflows a heap buffer, enabling control of execution flow to achieve code execution or denial of service.
How to fix it
Update dnsmasq to version 2.78 or later; for wordpress/wordpress (GIT) apply the fix in commit 491c67be12ca8a9fe37ae38307ba7e298c976ec3.
How to confirm the fix worked
Confirm dnsmasq version is 2.78 or newer and that the WordPress GIT commit 491c67be12ca8a9fe37ae38307ba7e298c976ec3 is present; test with crafted DNS responses in a lab environment.
Typical attack path
- Identify exposed dnsmasq service listening for DNS traffic
- Craft and transmit malicious DNS response packet
- Trigger heap overflow to corrupt memory structures
- Achieve arbitrary code execution or service crash
How to detect it
Review DNS server logs for unexpected crashes or malformed response handling around the time of suspected activity; look for process restarts of dnsmasq without administrative action.
What your security team should do
- Immediately upgrade all dnsmasq instances to 2.78 or later
- Scan for any WordPress deployments pulling the vulnerable GIT revision and apply the referenced commit
- Monitor EPSS and exploit availability trends for prioritization
- Restrict DNS listener exposure to trusted networks where possible
The record
Heap-based buffer overflow in dnsmasq before 2.78 allows remote attackers to cause a denial of service (crash) or execute arbitrary code via a crafted DNS response.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.11 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.12 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.13 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.14 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.15 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.16 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.17 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.18 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.19 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.20 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.21 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.22 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.3 | dnsmasq | 0 | 2.76-r1 |
| Alpine:v3.4 | dnsmasq | 0 | 2.76-r1 |
| Alpine:v3.5 | dnsmasq | 0 | 2.76-r2 |
| Alpine:v3.6 | dnsmasq | 0 | 2.76-r5 |
| Alpine:v3.7 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.8 | dnsmasq | 0 | 2.78-r0 |
| Alpine:v3.9 | dnsmasq | 0 | 2.78-r0 |
| Android | platform/external/dnsmasq | 10:0 | 10:2021-03-01 |
| Android | platform/external/dnsmasq | 11:0 | 11:2021-03-01 |
| Android | platform/external/dnsmasq | 8.1:0 | 8.1:2021-03-01 |
| Android | platform/external/dnsmasq | 9:0 | 9:2021-03-01 |
| Debian:11 | dnsmasq | 0 | 2.78-1 |
| Debian:12 | dnsmasq | 0 | 2.78-1 |
| Debian:13 | dnsmasq | 0 | 2.78-1 |
| Debian:14 | dnsmasq | 0 | 2.78-1 |
| Debian:7 | dnsmasq | 0 | 2.62-3+deb7u4 |
| Debian:8 | dnsmasq | 0 | 2.72-3+deb8u2 |
| Debian:9 | dnsmasq | 0 | 2.76-5+deb9u1 |
| Mageia:5 | dnsmasq | 0 | 2.77-1.1.mga5 |
| Mageia:6 | dnsmasq | 0 | 2.77-1.2.mga6 |
| Red Hat:enterprise_linux:6::client | dnsmasq | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::client | dnsmasq-debuginfo | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::client | dnsmasq-utils | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::computenode | dnsmasq | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::computenode | dnsmasq-debuginfo | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::computenode | dnsmasq-utils | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::server | dnsmasq | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::server | dnsmasq-debuginfo | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::server | dnsmasq-utils | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::workstation | dnsmasq | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::workstation | dnsmasq-debuginfo | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:6::workstation | dnsmasq-utils | 0 | 0:2.48-18.el6_9 |
| Red Hat:enterprise_linux:7::client | dnsmasq | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::client | dnsmasq-debuginfo | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::client | dnsmasq-utils | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::computenode | dnsmasq | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::computenode | dnsmasq-debuginfo | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::computenode | dnsmasq-utils | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::server | dnsmasq | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::server | dnsmasq-debuginfo | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::server | dnsmasq-utils | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::workstation | dnsmasq | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::workstation | dnsmasq-debuginfo | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:enterprise_linux:7::workstation | dnsmasq-utils | 0 | 0:2.76-2.el7_4.2 |
| Red Hat:rhel_aus:5.9 | dnsmasq | 0 | 0:2.45-2.el5_9.1 |
| Red Hat:rhel_aus:5.9 | dnsmasq-debuginfo | 0 | 0:2.45-2.el5_9.1 |
| Red Hat:rhel_aus:6.4::server | dnsmasq | 0 | 0:2.48-13.el6_4.1 |
| Red Hat:rhel_aus:6.4::server | dnsmasq-debuginfo | 0 | 0:2.48-13.el6_4.1 |
| Red Hat:rhel_aus:6.4::server | dnsmasq-utils | 0 | 0:2.48-13.el6_4.1 |
| Red Hat:rhel_aus:6.5::server | dnsmasq | 0 | 0:2.48-13.el6_5.1 |
| Red Hat:rhel_aus:6.5::server | dnsmasq-debuginfo | 0 | 0:2.48-13.el6_5.1 |
| Red Hat:rhel_aus:6.5::server | dnsmasq-utils | 0 | 0:2.48-13.el6_5.1 |
| Red Hat:rhel_aus:6.6::server | dnsmasq | 0 | 0:2.48-14.el6_6.1 |
| Red Hat:rhel_aus:6.6::server | dnsmasq-debuginfo | 0 | 0:2.48-14.el6_6.1 |
| Red Hat:rhel_aus:6.6::server | dnsmasq-utils | 0 | 0:2.48-14.el6_6.1 |
| Red Hat:rhel_els:5 | dnsmasq | 0 | 0:2.45-2.el5_11.1 |
| Red Hat:rhel_els:5 | dnsmasq-debuginfo | 0 | 0:2.45-2.el5_11.1 |
| Red Hat:rhel_eus:6.7::computenode | dnsmasq | 0 | 0:2.48-16.el6_7.1 |
| Red Hat:rhel_eus:6.7::computenode | dnsmasq-debuginfo | 0 | 0:2.48-16.el6_7.1 |
| Red Hat:rhel_eus:6.7::computenode | dnsmasq-utils | 0 | 0:2.48-16.el6_7.1 |
| Red Hat:rhel_eus:6.7::server | dnsmasq | 0 | 0:2.48-16.el6_7.1 |
| Red Hat:rhel_eus:6.7::server | dnsmasq-debuginfo | 0 | 0:2.48-16.el6_7.1 |
| Red Hat:rhel_eus:6.7::server | dnsmasq-utils | 0 | 0:2.48-16.el6_7.1 |
| Red Hat:rhel_eus:7.2::computenode | dnsmasq | 0 | 0:2.66-14.el7_2.2 |
| Red Hat:rhel_eus:7.2::computenode | dnsmasq-debuginfo | 0 | 0:2.66-14.el7_2.2 |
| Red Hat:rhel_eus:7.2::computenode | dnsmasq-utils | 0 | 0:2.66-14.el7_2.2 |
| Red Hat:rhel_eus:7.2::server | dnsmasq | 0 | 0:2.66-14.el7_2.2 |
| Red Hat:rhel_eus:7.2::server | dnsmasq-debuginfo | 0 | 0:2.66-14.el7_2.2 |
| Red Hat:rhel_eus:7.2::server | dnsmasq-utils | 0 | 0:2.66-14.el7_2.2 |
| Red Hat:rhel_eus:7.3::computenode | dnsmasq | 0 | 0:2.66-21.el7_3.2 |
| Red Hat:rhel_eus:7.3::computenode | dnsmasq-debuginfo | 0 | 0:2.66-21.el7_3.2 |
| Red Hat:rhel_eus:7.3::computenode | dnsmasq-utils | 0 | 0:2.66-21.el7_3.2 |
| Red Hat:rhel_eus:7.3::server | dnsmasq | 0 | 0:2.66-21.el7_3.2 |
| Red Hat:rhel_eus:7.3::server | dnsmasq-debuginfo | 0 | 0:2.66-21.el7_3.2 |
| Red Hat:rhel_eus:7.3::server | dnsmasq-utils | 0 | 0:2.66-21.el7_3.2 |
| Red Hat:rhel_mission_critical:6.2::server | dnsmasq | 0 | 0:2.48-5.el6_2.2 |
| Red Hat:rhel_mission_critical:6.2::server | dnsmasq-debuginfo | 0 | 0:2.48-5.el6_2.2 |
| Red Hat:rhel_tus:6.5::server | dnsmasq | 0 | 0:2.48-13.el6_5.1 |
| Red Hat:rhel_tus:6.5::server | dnsmasq-debuginfo | 0 | 0:2.48-13.el6_5.1 |
| Red Hat:rhel_tus:6.5::server | dnsmasq-utils | 0 | 0:2.48-13.el6_5.1 |
| Red Hat:rhel_tus:6.6::server | dnsmasq | 0 | 0:2.48-14.el6_6.1 |
| Red Hat:rhel_tus:6.6::server | dnsmasq-debuginfo | 0 | 0:2.48-14.el6_6.1 |
| Red Hat:rhel_tus:6.6::server | dnsmasq-utils | 0 | 0:2.48-14.el6_6.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | dnsmasq | 0 | 2.78-0.16.5.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | dnsmasq | 0 | 2.78-0.16.5.1 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | dnsmasq | 0 | 2.78-0.16.5.1 |
| SUSE:Linux Enterprise Server 11 SP4 | dnsmasq | 0 | 2.78-0.17.5.1 |
| SUSE:Linux Enterprise Server 12 SP1-LTSS | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Server 12 SP2 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Server 12 SP3 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Server 12-LTSS | dnsmasq | 0 | 2.78-6.6.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | dnsmasq | 0 | 2.78-0.17.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:OpenStack Cloud 6 | dnsmasq | 0 | 2.78-18.3.1 |
| SUSE:OpenStack Cloud 7 | dnsmasq | 0 | 2.78-18.3.1 |
| Ubuntu:14.04:LTS | dnsmasq | 0 | 2.68-1ubuntu0.2 |
| Ubuntu:16.04:LTS | dnsmasq | 0 | 2.75-1ubuntu0.16.04.3 |
| openSUSE:Tumbleweed | dnsmasq | 0 | 2.86-1.1 |
Related vulnerabilities
- CVE-2017-14496 Integer underflow in the add_pseudoheader function in dnsmasq before 2.78 , when the… Also affects dnsmasq
- CVE-2017-14492 Heap-based buffer overflow in dnsmasq before 2.78 allows remote attackers to cause a… Also affects dnsmasq
- CVE-2017-14495 Memory leak in dnsmasq before 2.78, when the --add-mac, --add-cpe-id or --add-subnet… Also affects dnsmasq
- CVE-2017-14494 dnsmasq before 2.78, when configured as a relay, allows remote attackers to obtain… Also affects dnsmasq
- CVE-2017-14493 Stack-based buffer overflow in dnsmasq before 2.78 allows remote attackers to cause a… Also affects dnsmasq
- CVE-2017-13704 In dnsmasq before 2.78, if the DNS packet size does not match the expected size, the size… Also affects dnsmasq
- CVE-2023-50868 The Closest Encloser Proof aspect of the DNS protocol (in RFC 5155 when RFC 9276 guidance… Also affects dnsmasq
- CVE-2015-8899 Dnsmasq before 2.76 allows remote servers to cause a denial of service (crash) via a… Also affects dnsmasq