CVE-2017-15908
High · 7.5CVSS
7.5
EPSS
23.6%
Published
Oct 26, 2017
CISA due date
—
Cloudanix analysis
A flaw in how certain systems handle special DNS replies can make the DNS service stop working until it is restarted, but the problem is old, has not been used by attackers, and is fixed by updating a small number of software packages.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Network Service
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A remote DNS server can return a crafted NSEC resource record that triggers an infinite loop inside dns_packet_read_type_window() of systemd-resolved, consuming CPU and denying service to the resolver.
Why it matters to the business
DNS resolution for affected systems can be disrupted, causing application outages and operational delays; the issue appears in a small number of downstream packages and has shown no active exploitation or ransomware use since disclosure more than eight years ago.
How an attack unfolds
An attacker controlling or spoofing a DNS response sends a single malicious NSEC record that systemd-resolved parses in a loop; because the flaw requires no authentication and has remained unexploited in the wild, no named threat actors have been observed leveraging it.
How to fix it
Upgrade ansible/ansible to commit 2a18883cb24b70043b5d719bb3c64c594670cad2 or later; for Alpine v3.7 packages upgrade to ansible 2.4.6.0-r0 or newer; restart systemd-resolved after the update and validate that queries complete normally.
How to confirm the fix worked
Confirm the running systemd version is outside the 223-235 range or that the ansible package matches the listed fixed versions; replay a benign DNS query and verify that resolution latency remains within normal bounds and CPU usage does not spike.
Typical attack path
- Position a malicious or compromised DNS server in the resolver's upstream path
- Craft an NSEC resource record that causes dns_packet_read_type_window to loop indefinitely
- Deliver the record in response to any query from the target systemd-resolved instance
- Observe sustained CPU consumption and loss of DNS resolution on the affected host
How to detect it
Review systemd-resolved logs and process accounting for sustained high CPU on the resolver process after receiving external DNS replies; correlate with any spikes in query volume or failure rates that lack other explanations.
What your security team should do
- Apply the listed fixed ansible package versions at the next maintenance window
- Monitor upstream systemd-resolved patches and back-port if ansible deployments lag
- Add the fixed package versions to vulnerability scanning policies to prevent regression
The record
In systemd 223 through 235, a remote DNS server can respond with a custom crafted DNS NSEC resource record to trigger an infinite loop in the dns_packet_read_type_window() function of the 'systemd-resolved' service and cause a DoS of the affected service.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | py3-supported-systemd | 0 | 0 |
| Chainguard | py3-systemd | 0 | 0 |
| Chainguard | py3.10-systemd | 0 | 0 |
| Chainguard | py3.11-systemd | 0 | 0 |
| Chainguard | py3.12-systemd | 0 | 0 |
| Chainguard | py3.13-systemd | 0 | 0 |
| Debian:11 | systemd | 0 | 235-3 |
| Debian:12 | systemd | 0 | 235-3 |
| Debian:13 | systemd | 0 | 235-3 |
| Mageia:6 | systemd | 0 | 230-12.2.mga6 |
| SUSE:Linux Enterprise Desktop 12 SP2 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Server 12 SP2 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Server 12 SP3 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | systemd | 0 | 228-150.29.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | systemd | 0 | 228-150.29.1 |
| Ubuntu:14.04:LTS | systemd | 0 | 204-5ubuntu20.26 |
| Ubuntu:16.04:LTS | systemd | 0 | 229-4ubuntu21.1 |
| openSUSE:Tumbleweed | systemd | 0 | 249.4-2.2 |
Related vulnerabilities
- CVE-2023-50868 The Closest Encloser Proof aspect of the DNS protocol (in RFC 5155 when RFC 9276 guidance… Also affects systemd
- CVE-2019-6454 An issue was discovered in sd-bus in systemd 239. Also affects systemd
- CVE-2017-9445 In systemd through 233, certain sizes passed to dns_packet_new in systemd-resolved can… Also affects systemd
- CVE-2017-9217 systemd-resolved through 233 allows remote attackers to cause a denial of service (daemon… Also affects systemd
- CVE-2026-40224 In systemd 259 before 260, there is local privilege escalation in systemd-machined… Also affects systemd
- CVE-2026-29111 systemd, a system and service manager, (as PID 1) hits an assert and freezes execution… Also affects systemd
- CVE-2026-4105 A flaw was found in systemd. Also affects systemd
- CVE-2026-110354 HAProxy 3 before 3.4.6 allows a remote unauthenticated attacker to cause a denial of… CWE-835