CVE-2026-93657: hickory-resolver: Resolver::lookup() and Resolver::lookup_ip() APIs obscure DNSSEC validation failures
hickory-resolver versions before 0.26.2 fail to propagate bogus DNSSEC proof states through the Resolver::lookup() and Resolver::lookupip() APIs, allowing invalid records to be returned as successful results. Attackers controlling the answering zone or positioned on the network path can have forged DNS records accepted as validated, bypassing DNSSEC authentication checks.
Other sources
When calling Resolver::lookup() or Resolver::lookupip() on a resolver with DNSSEC validation enabled, both methods return Ok(...) if DNSSEC validation fails. It is possible but very inconvenient to check the validation status of individual records. These methods should instead return an error when DNSSEC validation determines a response is bogus.
— OSV
With DNSSEC validation enabled, Resolver::lookup() and Resolver::lookupip() returned Ok with the records even when validation found the response bogus. The result was only visible in each record's proof status, which callers had to inspect themselves.
Applications that enable validation and treat a successful lookup as validated data would therefore accept forged or tampered answers from anyone who can answer or modify their DNS traffic.
From 0.26.2 a lookup whose records are bogus fails with a "DNSSEC validation failed" error (DnsError::DnssecBogus), the error is not retried, and the hickory-server forwarder answers SERVFAIL for it.
— OSV
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rust/hickory-resolverto a version that resolves this vulnerability.Fixed in 0.26.2 - Upgrade
Upgrade
hickory-resolverto a version that resolves this vulnerability.Fixed in 0.26.2
Event History
Frequently Asked Questions
Which resolver calls are affected?
The validation bypass affects applications using the Resolver::lookup() and Resolver::lookup_ip() APIs, where bogus DNSSEC proof states are not propagated and invalid records can be returned as successful results.
What access does an attacker need to exploit this?
An attacker must be able to control the answering DNS zone or be positioned on the network path. No privileges or user interaction are required according to the supplied severity vector.
Which versions need remediation?
hickory-resolver versions before 0.26.2 are affected. Upgrading to 0.26.2 or later addresses the affected version range.