Skip to main content

dnspython CVE-2026-114605

| EUVDEUVD-2026-108227 HIGH
Uncontrolled Recursion (CWE-674)
2026-10-22 GitHub_M
7.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Deliver crafted DNS wire message
  2. Exploit
    Trigger unbounded compression pointer chain
  3. Impact
    Exhaust 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

dnspython < 2.9.0

Affected Packages

euvd dnspython fix: 2.9.0

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

Vendor (GitHub_M) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch available
Oct 22, 2026 - 17:18 EUVD
CVE Published
Oct 22, 2026 - 16:25 cve.org
HIGH 7.5

DescriptionCVE.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

Why It Matters

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.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

Prevalence
High
dnspython is a widely-used Python DNS library across many tools and services
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS N/A
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy