GitHub Advisoryadvisory · crates.io
GHSA-6w6g-hm98-mhgm hickory-resolver: Unbounded TC-retry loop in `NameServerPool::try_send` (resource-exhaustion DoS)
HIGH
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
References
- https://github.com/hickory-dns/hickory-dns/security/advisories/GHSA-6w6g-hm98-mhgm web
- https://github.com/hickory-dns/hickory-dns/pull/3871 web
- https://github.com/hickory-dns/hickory-dns/commit/0848d2e9e4183499343318a690d6dd5e48bc21c1 web
- https://github.com/hickory-dns/hickory-dns/commit/5d37e2e04a36a87013a213b58b820345ef76a263 web
- https://github.com/hickory-dns/hickory-dns package
- https://github.com/hickory-dns/hickory-dns/releases/tag/v0.26.2 web