Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted DNS wire message
-
ExploitTrigger unbounded compression pointer chain
-
ImpactExhaust CPU, degrade or DoS service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | Exploitation requires that the application pass attacker-controlled DNS wire-format data to dns.name.from_wire_parser (reached via dns.name.from_wire and general message parsing) - i.e. the application must process untrusted DNS messages, such as a resolver, DNS client, or any service that accepts and decodes DNS responses or queries from untrusted peers. No authentication, user interaction, or non-default configuration is required (AV:N/AC:L/PR:N/UI:N) once untrusted DNS input reaches the parser. The practical limiting factor is architectural: systems that only parse trusted/internal DNS data are not exposed. Affected versions are all dnspython releases prior to 2.9.0; the only fix is upgrading to 2.9.0, as the vendor advisory states there are no known workarounds. |
| Impact | This is a genuine but bounded availability risk. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H, base 7.5) is internally consistent with the mechanism: a single crafted DNS wire-format message, delivered remotely without authentication or user interaction, forces unbounded compression-pointer traversal in dns.name.from_wire_parser (CWE-674, uncontrolled recursion/iteration), yielding only an availability impact - confidentiality and integrity are correctly rated N. No EPSS score was supplied, so exploitation probability cannot be quantified; this gap should be noted rather than assumed low. KEV status is not listed, so there is no confirmed active exploitation. The vuln.today decision label is 'this_week' (not act_now/emergency), aligning with a high-severity DoS that is not under confirmed mass exploitation. There is no standalone weaponized exploit, but the fix commit includes a test case that demonstrates the exact triggering wire format, lowering the bar to reproduce. Net: treat as a real patch-this-week priority for any service that parses untrusted DNS messages with dnspython, but not a drop-everything emergency - the impact ceiling is resource exhaustion, not code execution or data loss. |
| Exploit ScenarioDerived | An attacker sends, or causes a resolver/application to receive, a single malicious DNS response or message containing a chain of compression pointers that each point to the next, exceeding a reasonable hop count. When the application decodes the name with dns.name.from_wire_parser, it follows the chain without limit, consuming excessive CPU and degrading or denying service. The fix commit contains a test case with the exact crafted wire bytes demonstrating the trigger, though no independently weaponized exploit is confirmed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Excessive CPU consumption during DNS name decompression in dnspython before 2.9.0 lets remote attackers degrade or deny service to applications that decode untrusted DNS wire-format messages. The parser function dns.name.from_wire_parser follows attacker-controlled compression pointer chains without a hop limit, so a single crafted message can force long pointer traversal; no authentication, user interaction, or non-default configuration is required once untrusted DNS data reaches the parser (CVSS 3.1 AV:N/AC:L/PR:N/UI:N, A:H). The exposure is bounded by architecture rather than by exploit complexity: resolvers, DNS clients and any service that decodes DNS queries or responses from untrusted peers are affected, while systems that only parse trusted internal DNS data are not. No public exploit was identified at time of analysis and the issue is not in CISA KEV; the vendor-released patch is version 2.9.0, and the vendor states there are no known workarounds.
RemediationAI
Upgrade to dnspython 2.9.0 or later (for example pip install --upgrade 'dnspython>=2.9.0'), which enforces a 16-hop limit on compression pointer chains and raises dns.name.PointerChainTooLong instead of continuing traversal; details are in the advisory at https://github.com/rthalley/dnspython/security/advisories/GHSA-45c3-73f7-pv4m and the fix commit https://github.com/rthalley/dnspython/commit/b485e460c266540a1a09ca6d8d1d7b685b1d3023. The vendor explicitly states there are no known workarounds, so patching is the only complete fix; the practical compensating control is architectural, namely ensuring that untrusted DNS wire data is not fed into pre-2.9.0 dnspython parsers, since applications that only decode trusted internal DNS data are not exposed. If an upgrade cannot be shipped immediately, treat that exposure boundary as the mitigation and avoid decoding messages from untrusted peers, accepting that this restricts functionality for resolvers and clients that legitimately must parse arbitrary responses.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
DNS wire-format names may end in a compression pointer (the 0xC0-prefixed two-byte offset) that tells the parser to continue reading the name at another location in the message, and chains of such pointers are legal as long as they terminate. dnspython's dns.name.from_wire_parser, reached through dns.name.from_wire and general message parsing, walked those chains with no bound on the number of hops, so a maliciously constructed message could nest pointers deeply and burn CPU on decompression work that yields little or no useful name data. The flaw is classified CWE-674 (uncontrolled recursion / unbounded iteration) and is purely an availability issue: there is no memory corruption, no data exposure and no integrity impact. The upstream fix in commit b485e460 introduces a PointerChainTooLong form error and a module constant MAX_COMPRESSION_POINTER_CHAIN set to 16, increments a hop counter on each pointer traversal, and raises once the chain exceeds 16 hops; the accompanying test builds a 34-byte wire sequence containing exactly 16 pointers that still resolves to the root name, then appends one more pointer and asserts PointerChainTooLong. Validation limits like this are a standard defense for recursive or pointer-chasing decoders, since without an explicit bound the terminator depends entirely on attacker-supplied data.
Know when Dnspython gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
A single crafted DNS message decoded by an untrusted-input parser needs no privileges or interaction (AV:N/AC:L/PR:N/UI:N); impact is CPU exhaustion only, so C:N/I:N/A:H, scope unchanged.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
dnspython is a DNS toolkit for Python. Prior to 2.9.0, dns.name.from_wire_parser follows attacker-controlled DNS compression pointer chains without a hop limit. A malicious DNS wire-format message can force excessive pointer traversal during name decompression, causing high CPU use, application degradation, or denial of service in applications that process untrusted DNS messages. This issue is fixed in version 2.9.0.
Technical POC Analysis
CWE-674, Uncontrolled Recursion (as classified in the advisory).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity flaw in the widely used dnspython library (before version 2.9.0) allows remote attackers to degrade or deny service to any application that processes untrusted DNS traffic. This affects DNS resolvers, clients, and services that decode DNS queries or responses from external peers, potentially disrupting network operations and customer-facing services. Leadership should prioritize remediation because the library is embedded in many critical systems and exploitation requires no authentication.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
EUVD-2026-108227
NVD
CVE.org
GitHub
Exploit-DB