{"id":"CVE-2026-33278","details":"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.","modified":"2026-06-06T07:44:14.735180043Z","published":"2026-05-20T10:16:26.530Z","related":["ALSA-2026:23231","SUSE-SU-2026:21874-1","SUSE-SU-2026:21913-1","SUSE-SU-2026:2281-1","openSUSE-SU-2026:10903-1"],"references":[{"type":"ADVISORY","url":"https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-33278.txt"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/nlnetlabs/unbound","events":[{"introduced":"c6dd1e116df75242a0c032295c152f06c721b3cd"},{"fixed":"75b6dba593d4fff000434cd64807c6ebd50bd244"}],"database_specific":{"source":"CPE_RANGE","cpe":"cpe:2.3:a:nlnetlabs:unbound:*:*:*:*:*:*:*:*","extracted_events":[{"introduced":"1.19.1"},{"fixed":"1.25.1"}]}}],"database_specific":{"vanir_signatures_modified":"2026-05-31T03:35:25Z","source":"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-33278.json","vanir_signatures":[{"digest":{"length":1502,"function_hash":"26148135886169857913239956572075736548"},"deprecated":false,"signature_version":"v1","source":"https://github.com/nlnetlabs/unbound/commit/75b6dba593d4fff000434cd64807c6ebd50bd244","target":{"function":"rpz_callback_from_iterator_module","file":"services/rpz.c"},"signature_type":"Function","id":"CVE-2026-33278-7cb89fac"},{"signature_version":"v1","signature_type":"Line","digest":{"threshold":0.9,"line_hashes":["108481287081154918060659085654141150584","73953166938600086918224773195867549742","15251087855327528788980657535362970158","48532896601082718174781974683716349061","287248990686482337183326495344180868363","112058947495561481565691171486557666856","238258467286774268681997190612827183971","126648031849056156900266153546629664662","335401097143186200364020904286165936708","336096779053276656395004922884987906159","248876396313049466881138460638611830858","293135123655960925553682804594622081358","298612071867479354827766089224387452786","217265304546593372824910550975155656654","13292601781282786772501437491204364169","281286782737850123600796590480125479595","74511316679551775089931390035715335201","161066344018382590627892027575409612852","226343512543910522766563315515650712879"]},"id":"CVE-2026-33278-a3b17d2e","target":{"file":"services/rpz.c"},"deprecated":false,"source":"https://github.com/nlnetlabs/unbound/commit/75b6dba593d4fff000434cd64807c6ebd50bd244"}]}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}