GitHub Advisoryadvisory · crates.io

GHSA-6w6g-hm98-mhgm hickory-resolver: Unbounded TC-retry loop in `NameServerPool::try_send` (resource-exhaustion DoS)

HIGH Published 2026-10-05 Modified 2026-10-05 Official page ↗
Ecosystem
crates.io
Packages
hickory-resolver
Severity
High
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weaknesses
CWE-400, CWE-406, CWE-835
Reviewed
2026-10-05

Affected packages

• crates.io hickory-resolver: >= 0.26.0-beta.1, < 0.26.2 → fixed in 0.26.2

Description

When the `hickory-resolver` name server pool implementation receives an upstream response with the TC (truncated) header bit set, it re-queues the request to the same nameserver to retry with UDP transport disabled. However, the retry arm never inspects the transport that just answered and carries no iteration counter. An authoritative server that sets `TC=1` on every available transport keeps the resolver spinning on one persistent TCP connection until the 5s per-request wall-clock deadline expires. Reporter Qifan Zhang, Palo Alto Networks

Related

Weakness · CWE (3)

  • CWE-400 Uncontrolled Resource Consumption weakness
  • CWE-406 Insufficient Control of Network Message Volume (Network Amplification) weakness
  • CWE-835 Loop with Unreachable Exit Condition weakness

References