RUSTSEC-2026-0541

Source
https://rustsec.org/advisories/RUSTSEC-2026-0541
Import Source
https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0541.json
JSON Data
https://api.osv.dev/v1/vulns/RUSTSEC-2026-0541
Aliases
Published
2026-09-03T12:00:00Z
Modified
2026-11-13T12:55:46Z
Summary
Parent-side NSEC3 at a zone cut accepted as proof of nonexistence at and below the cut
Details

At a delegation, the parent zone signs an NSEC3 record for the child's name whose type bitmap has NS but not SOA (or has DNAME). RFC 6840 section 4.1 and RFC 5155 section 8.3 say such a record only proves that no DS record exists at that name.

NSEC3 validation picked the closest encloser by matching the hashed owner name alone, without looking at the type bitmap, so it accepted such a record as the closest encloser for names below the cut. For NODATA responses, it accepted a direct match on such a record as proof that any type other than the queried one and CNAME was absent, not only DS. An attacker who can answer or modify DNS responses can replay the parent's genuine signed records to get an NXDOMAIN for a name below the cut, or a NODATA for a non-DS type at the cut, accepted as secure. A recursor caches that denial for the negative TTL.

This affects DNSSEC validation through DnssecDnsHandle when built with dnssec-ring or dnssec-aws-lc-rs.

The fix adds NSEC3::is_ancestor_delegation() in hickory-proto. Validation no longer accepts such a record as a closest encloser, and treats a direct match on it as bogus unless the query is for DS. It is in 0.26.2.

Database specific
{
    "license": "CC0-1.0"
}
References

Affected packages

crates.io / hickory-net

Package

Name
hickory-net
View open source insights on deps.dev
Purl
pkg:cargo/hickory-net

Affected ranges

Type
SEMVER
Events
Introduced
0.0.0-0
Fixed
0.26.2

Ecosystem specific

{
    "affected_functions": null,
    "affects": {
        "arch": [],
        "functions": [],
        "os": []
    }
}

Database specific

categories
[
    "privilege-escalation"
]
cvss
null
informational
null
source
"https://github.com/rustsec/advisory-db/blob/osv/crates/RUSTSEC-2026-0541.json"