# CVE-2026-123588: Hickory DNS Recursive Resolver Denial of Service via Cached Empty Connection Pool

Status: published. Published: 2026-11-08. Updated: 2026-11-08.

The recursive resolver in Hickory DNS (all versions of the hickory-recursor crate, and hickory-resolver 0.26.0 before 0.26.2) caches an empty connection pool when it follows a referral with no glue records and all queries for the name servers' IP addresses fail. An attacker able to spoof DNS responses can make these lookups fail, causing all subsequent queries for the affected zone to fail until the cache entry expires or is evicted.

## Remediation

No remediation reported in collected sources

## Affected products and versions

- hickory-dns / hickory-dns (hickory-recursor): ≥ 0; ≤ 0.26.0-alpha.1 (affected, semver). Source: CNA: VulnCheck
- hickory-dns / hickory-dns (hickory-resolver): ≥ 0.26.0; < 0.26.2 (affected, semver); 0.26.2 (unaffected, semver). Source: CNA: VulnCheck

## Severity and prioritization

- CVSS 4.0: 8.7 (high); 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; source: CNA: VulnCheck

- CVSS 3.1: 7.5 (high); CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H; source: CNA: VulnCheck

- CISA KEV: No listing in collected sources

- EPSS: Not available

- SSVC: Not available

- Weaknesses: CWE-754

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://github.com/hickory-dns/hickory-dns/security/advisories/GHSA-9px7-7m25-f6q2 (CNA: VulnCheck; vendor-advisory)

- https://www.vulncheck.com/advisories/hickory-dns-recursive-resolver-denial-of-service-via-cached-empty-connection-pool (CNA: VulnCheck; third-party-advisory)

## Provenance

- CNA: VulnCheck: https://www.cve.org/CVERecord?id=CVE-2026-123588; retrieved 2026-11-08; source updated 2026-11-08

Revision: b621e67d81e9abaf7f79812abf5c3f474d9c1a1539a8ffa23fe0a73a8fc268e0

Canonical: https://y2.dev/cve/CVE-2026-123588

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.