---
id: CVE-2026-78227
title: >-
  NLnet Labs Unbound 1.22.0 up to and including 1.26.1, has a use-after-free
  vulnerability when compiled for DNS-over-QUIC support with '--with-libngtcp2'
summary: >-
  NLnet Labs Unbound 1.22.0 up to and including 1.26.1, has a use-after-free
  vulnerability when compiled for DNS-over-QUIC support with '--with-libngtcp2'.
  Each DoQ stream owns an output buffer that holds the DNS response. ngtcp2's
  retrans…
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:L'
cwe:
  - CWE-416
  - CWE-825
vendor: nlnetlabs
product: unbound
affected:
  - 'unbound >= 1.22.0, < 1.26.1'
patched:
  - unbound 1.26.1
published: '2026-09-16'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T20:09:01.923'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-78227'
references:
  - url: 'https://www.nlnetlabs.nl/downloads/unbound/CVE-2026-78227.txt'
    label: sep@nlnetlabs.nl
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-78227.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-78227'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2535052'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-78227'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-78227'
  - url: 'https://access.redhat.com/errata/RHSA-2026:68590'
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
epss: 0.0034
epssPercentile: 0.24738
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-09-16T15:33:40.171223Z'
scores:
  nvd: 6.5
  vendor: 5.9
ingestedAt: '2026-09-16T08:52:29.598Z'
---

## Overview

NLnet Labs Unbound 1.22.0 up to and including 1.26.1, has a use-after-free vulnerability when compiled for DNS-over-QUIC support with '--with-libngtcp2'. Each DoQ stream owns an output buffer that holds the DNS response. ngtcp2's retransmission buffer keeps a shallow pointer into the output buffer for as long as a STREAM frame may be resent. On a client RESET_STREAM, the output buffer is freed but ngtcp2 still holds the matching retransmission entries. The next PTO timeout makes ngtcp2 re-encode the STREAM frame and copy from the freed buffer. A malicious actor that can query Unbound over DoQ and that withholds ACKs, sends RESET_STREAM, and waits for PTO, reaches this use-after-free with no privilege. This leads to retransmissions against freed memory and eventually an abnormal server exit under a 20-query spray.

## Affected

- `unbound >= 1.22.0, < 1.26.1`

## Remediation

Upgrade past the affected range:

- `unbound 1.26.1`

## Vendor advisories

- **Red Hat VEX** · Moderate · affected: Red Hat OpenShift Container Platform 4 · no fix planned: Red Hat OpenShift Container Platform 4 · updated 2026-09-16 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-78227.json)
- **RHSA-2026:68590** · Red Hat · fixed in: Red Hat Hardened Images · released 2026-09-17 · [advisory](https://access.redhat.com/errata/RHSA-2026:68590)
