# CVE-2026-33278: Possible arbitrary code execution during DNSSEC validation

> Remote attackers can cause denial of service or execute arbitrary code in Unbound by exploiting a use-after-free bug in DNSSEC validation.

- **Severity:** Critical 9.1 (`CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:U/U:Red`)
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Over the internet
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 20 May 2026
- **Updated:** 1 Sep 2026
- **Also known as:** ALPINE-CVE-2026-33278, AZL-87027, CLSA-2026-1779467038, CLSA-2026-1779467345, CLSA-2026-1779467733, CLSA-2026-1779534149, CLSA-2026-1779535502, DEBIAN-CVE-2026-33278, ECHO-a689-363a-cb69, GHSA-m234-r435-cxjw, ROOT-OS-DEBIAN-11-CVE-2026-33278, ROOT-OS-DEBIAN-12-CVE-2026-33278, UBUNTU-CVE-2026-33278

## What is CVE-2026-33278?

CVE-2026-33278 is a critical use after free vulnerability in Nlnetlabs Unbound, published on 20 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

### Official 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.

Weakness: CWE-672 (Operation on a Resource after Expiration or Release), CWE-416 (Use After Free)

## Which versions are affected by CVE-2026-33278?

It affects 1 product.


Products: Nlnetlabs Unbound.

## How do I fix CVE-2026-33278?

Apply the vendor's patch.

## Is CVE-2026-33278 being exploited?

There is no known exploitation of CVE-2026-33278 in the wild and no public exploit code.

## Other vulnerabilities in Nlnetlabs Unbound

- [CVE-2026-81642](https://insights.sbomify.com/CVE-2026-81642/): Heap buffer overflow and possible Remote Code Execution when digesting DNSKEY (critical 9.1)
- [CVE-2026-42944](https://insights.sbomify.com/CVE-2026-42944/): Heap overflow with multiple NSID, COOKIE, PADDING EDNS options (high 8.7)
- [CVE-2026-42959](https://insights.sbomify.com/CVE-2026-42959/): Crash during DNSSEC validation of malicious content (high 8.7)
- [CVE-2026-82717](https://insights.sbomify.com/CVE-2026-82717/): CNAME synthesis could lead to heap corruption (high 8.4)
- [CVE-2026-81634](https://insights.sbomify.com/CVE-2026-81634/): Possible heap buffer overflow during DNSSEC canonicalization (high 7.5)

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-33278 and fix it if it is affected.

What it is: CVE-2026-33278 is a critical use after free vulnerability in Nlnetlabs Unbound, published on 20 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-33278 in the wild and no public exploit code.

Affected product: Nlnetlabs Unbound. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-33278/ (Markdown: https://insights.sbomify.com/CVE-2026-33278/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-33278
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-33278
- OSV: https://osv.dev/vulnerability/CVE-2026-33278

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-33278/
Summaries are generated and may contain mistakes; the official description above is the record.
