{"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":"NLnet Labs","product":"Unbound","affected":["Unbound >= 1.22.0 < 1.26.1"],"published":"2026-09-16","updated":"2026-09-16","sourceUpdated":"2026-09-16T19:41:10.423","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"],"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","epss":0.00267,"epssPercentile":0.19024,"patched":["hardened_images"],"slug":"CVE-2026-78227","body":"## Overview\n\nNLnet 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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **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)\n- **RHSA-2026:68590** · Red Hat · fixed in: Red Hat Hardened Images · released 2026-09-17 · [advisory](https://access.redhat.com/errata/RHSA-2026:68590)","depth":"sunlit","depthScore":36,"depthScoreParts":{"impact":35.8,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}