- Exploited
- No known exploitation
- Fix
- Fixed in hickory-proto 0.26.0-beta.1 · hickory-net 0.26.1
- Who is exposed
- Not reported
Do first: Upgrade to a fixed version: hickory-proto 0.26.0-beta.1 · hickory-net 0.26.1.
- Last modified
- A 0-100 score for how much a CVE matters across the industry: exploitation, exposure, how widely the software is used, severity and whether a fix exists.What do these mean? →
- 23/100 · provisional
- The rating the maker of the software gives it. Shown when it differs from the CVSS level.What do these mean? →
- High (ghsa)
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
Hickory DNS's `hickory-proto` and `hickory-net` libraries, when built with the `dnssec-ring` or `dnssec-aws-lc-rs` feature and set to validate DNSSEC, can enter an endless loop while checking NoData or NXDomain responses whose authority section contains an SOA record from an unrelated zone. An upstream attacker who sends such a response can crash debug builds or exhaust memory in release builds.
Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.
Read the original description
The NSEC3 closest-encloser proof validation in hickory-proto's (0.25.0-alpha.3 ... 0.25.2) and hickory-net's (0.26.0-alpha.1 .. 0.26.0) DnssecDnsHandle walks from the QNAME up to the SOA owner name, building a list of candidate encloser names. The iterator used assumes the QNAME is a descendant of the SOA owner, terminating only when the current candidate equals the SOA name. When the SOA in a response's authority section is not an ancestor of the QNAME, the loop stalls at the DNS root and never terminates, repeatedly calling Name::base_name() and pushing newly allocated Name and hashed-name entries into the candidate Vec.
The bug is reachable by any caller of DnssecDnsHandle, including the resolver, recursor, and client, when built with the dnssec-ring or dnssec-aws-lc-rs feature and configured to perform DNSSEC validation. It is triggered while validating a NoData or NXDomain response whose authority section contains an SOA record from a zone other than an ancestor of the QNAME, on a code path that requires NSEC3 closest-encloser proof. In practice this can be reached through an insecure CNAME chain that crosses zone boundaries into a DNSSEC-signed zone returning NoData, but the minimum condition is just a mismatched SOA owner on a response requiring NSEC3 validation.
A debug_assert_ne!(name, Name::root()) guards the loop body, so debug builds abort with a panic on the first iteration past the root. Release builds compile the assertion out and run the loop unbounded, allocating until the process exhausts available memory. A reachable upstream attacker who can return such a response can therefore crash a debug build or exhaust memory on a release build, for the affected configurations.
The affected code was migrated from hickory-proto to hickory-net as part of the 0.26.0 release. Hickory DNS recommends that all affected users update to hickory-net 0.26.1 for the fix.
Reporter
David Cook, ISRG
cve.now Index
- Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
- Exposure?/25Unknown. No advisory context yet
- Reach16/20hickory-proto: 2.6M downloads a week
- Severity7/10Rated high by ghsa
- No patch0/5No signal
What would change the score
- Would score about 78 if added to CISA KEV
- Would score about 73 if CISA's SSVC rates exploitation active
- Would score about 45 if advisories confirm default setups are exposed
Impact
- Widely used
hickory-proto has 2.6m weekly downloads.Source: crates.io
What to do
Upgrade to a fixed version: hickory-proto 0.26.0-beta.1 · hickory-net 0.26.1.
Timeline
- Advisory published158 days
- Record last updated
Affected versions
- hickory-protocrates.io
From 0.25.0-alpha.3 · through 0.25.2
- hickory-netcrates.io
From 0.26.0-alpha.1 · fixed in 0.26.1
- hickory-protocrates.io
From 0.25.0-alpha.3 · fixed in 0.26.0-beta.1
Evidence 4
- Advisory
- Repository
- Link
- Link
Corrections
None so far.
Something wrong on this page? Report an error. Every fix is listed here.
Questions about GHSA-3V94-MW7P-V465
Is GHSA-3V94-MW7P-V465 being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data
Which versions are affected by GHSA-3V94-MW7P-V465?
hickory-proto (crates.io): from 0.25.0-alpha.3 through 0.25.2. hickory-net (crates.io): from 0.26.0-alpha.1 before 0.26.1. hickory-proto (crates.io): from 0.25.0-alpha.3 before 0.26.0-beta.1.Source: cve.now feed data
How do I fix GHSA-3V94-MW7P-V465?
Upgrade to a fixed version: hickory-proto 0.26.0-beta.1 · hickory-net 0.26.1.Source: cve.now feed data