Description
NLnet Labs Unbound 1.19.1 up to and including version 1.25.0 has a vulnerability in the DNSSEC validator that enables denial of service and possible remote code execution as a result of deep copying a data structure and erroneously overwriting a destination pointer. An adversary can exploit the vulnerability by controlling a malicious signed zone and querying a vulnerable Unbound. When DS sub-queries need to suspend validation due to NSEC3 computational budget exhaustion (introduced in Unbound 1.19.1), Unbound deep-copies response messages to preserve them across memory region teardown. A struct-assignment bug overwrites the destination's pointer with the source's pointer. After the sub-query region is freed, the resumed validator dereferences this dangling pointer, triggering a crash or potentially enabling arbitrary code execution. Unbound 1.25.1 contains a patch with a fix to preserve the correct pointer when deep copying the data structure.
Problem types
CWE-672: Operation on a Resource after Expiration or Release
Product status
1.19.1 (semver) before 1.25.1
Timeline
| 2026-04-15: | Issue reported by Qifan Zhang |
| 2026-04-29: | NLnet Labs shares patch |
| 2026-04-29: | Qifan Zhang verifies patch |
| 2026-05-20: | Fixes released with version 1.25.1 |
Credits
Qifan Zhang (Palo Alto Networks)
References
www.nlnetlabs.nl/downloads/unbound/CVE-2026-33278.txt