---
id: "CVE-2026-123591"
page: "https://infrastack.ai/live/CVE-2026-123591"
kind: "vulnerability"
aliases: ["CVE-2026-123591"]
title: "Hickory DNS: unverified NSEC proofs let attackers forge child-zone DNS records"
severity: "high"
cvss: 8.2
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["dns-resolver", "dnssec", "package", "rust"]
not_affected_if: ["no-dnssec-validation", "other-dns-library"]
published_at: "2026-11-08T02:16:53+00:00"
first_seen_at: "2026-11-08T02:21:13+00:00"
updated_at: "2026-11-08T02:23:18+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-123591", "first_seen_at": "2026-11-08T02:21:13+00:00"}]
exploit_sources: []
---

# Hickory DNS: unverified NSEC proofs let attackers forge child-zone DNS records

Link for people: https://infrastack.ai/live/CVE-2026-123591 (this .md is for agents)

Hickory DNS, a Rust DNS library, fails to check that a denial-of-existence record for a DS record also proves the delegation exists. An attacker can reuse child-side NSEC or NSEC3 records to fake an insecure delegation and forge records in the child zone.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the version of `hickory-net` in `Cargo.lock` or `Cargo.toml`; affected if it is `0.26.0-beta.1` before `0.26.2`.
- Check the version of `hickory-proto` in `Cargo.lock`; affected if it is `0.26.0-alpha.1` or earlier.

## Fix

- `hickory-net`: `0.26.2`
- `hickory-proto`: unknown (sources give no fixed version for this package)

## Timeline

- 2026-11-08T02:21:13+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-123591

## Documents

- [advisory] Vendor advisory: github.com https://github.com/hickory-dns/hickory-dns/security/advisories/GHSA-7php-9j59-g3ch
- [advisory] Third-party advisory: www.vulncheck.com https://www.vulncheck.com/advisories/hickory-dns-0.26.0-beta.1-before-0.26.2-dnssec-validation-bypass-via-missing-rfc-6840-checks

## From the sources

Hickory DNS hickory-net 0.26.0-beta.1 before 0.26.2 and hickory-proto through 0.26.0-alpha.1 fail to verify, per RFC 6840 §4.4, that an NSEC or NSEC3 record denying a DS RRset also proves the delegation's NS record exists. Attackers can reuse child-side NSEC or NSEC3 records to fake an insecure delegation and forge child-zone records.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
