Safeguard
Vulnerability Analysis•

CVE-2026-82717: Heap Corruption in NLnet Labs Unbound CNAME

CVE-2026-82717 is a critical heap corruption in Unbound up to 1.26.0 via CNAME synthesis. Upgrade to Unbound 1.26.1 or apply the NLnet Labs patch.

Safeguard Security Team
3 min read

CVE-2026-82717 is a critical (9.8) heap corruption flaw in NLnet Labs Unbound up to and including 1.26.0. Rewriting a maximum TTL during CNAME synthesis can lead to an error path that overflows a heap buffer. It can crash the resolver, and under some builds allow remote code execution. Upgrade to 1.26.1.

What's affected

NLnet Labs lists Unbound up to and including 1.26.0 as affected. Unbound 1.26.1 includes fixes for each of the individual issues that combine into this vulnerability.

The advisory also provides patch files for 1.26.0: a full one and a minimal one limited to this vulnerability. Both are described as tested on 1.26.0. This is a separate record from CVE-2026-81642, and one upgrade covers both.

How to check if you're exposed

Check the version of the resolver you run.

unbound -V

Then check how Unbound got onto the host. Distributions often ship their own builds with backported fixes, so a version string alone may mislead.

dpkg -l unbound 2>/dev/null
rpm -q unbound 2>/dev/null

Unbound is also bundled inside appliances and container images, so look there too. If your distribution has published its own advisory for this CVE, follow it.

What to do now

  1. Find every Unbound resolver, including those bundled in appliances and container images.
  2. Upgrade to Unbound 1.26.1 or a distribution build that carries the fix.
  3. If you build from source and cannot upgrade yet, NLnet Labs publishes patch files for 1.26.0 on the advisory page.
  4. Restart the service after patching and confirm the version.
  5. Limit who can query your resolver, so only your own clients reach it.

Why it matters

The weakness is CWE-122, heap-based buffer overflow. The advisory describes a chain. CNAME synthesis rewrites a TTL in the packet buffer, and a compression pointer that points to the overwritten value invalidates the domain name. The resulting error path does not move the buffer position correctly, and the overflow follows.

NLnet Labs notes that the outcome depends on heap layout. The usual result is memory corruption that ends in a crash. Code execution is possible only under specific systems and compilation options. That is a fair reason to treat a crash loop in your resolver as a signal and not a nuisance. It is not listed in CISA's KEV catalog.

Heap corruption bugs reward patience on the attacker side and punishment on the operator side. The advisory says results depend on heap layout, so the first visible symptom is often a crash, followed by a restart, followed by silence. If your resolver restarts unexpectedly, look at the logs and at what it was asked just before. A crash loop is a reason to patch sooner.

The advisory describes a chain of smaller flaws that combine. It says 1.26.1 fixes each of the individual issues. That is a good sign for completeness, and it is also why partial fixes are not a substitute. If you carry a distribution patch, confirm that it covers the whole set, not only the headline change.

The NLnet Labs page gives patch files for 1.26.0, in a full and a minimal variant. Choose the minimal one only if you need the smallest possible change, and plan to move to a full release afterwards.

Quick check

Is remote code execution certain?

No. The advisory says it depends on heap layout and compilation options. The common outcome is a crash, but patch regardless.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.