In NLnet Labs Unbound up to and including 1.26.0, a 255 length query name with a large TCP response can lead to a heap buffer overflow during the RRSet canonicalisation routine. This is caused by missing to add the first owner name into the buffer length check. A malicious actor operating a malicious name server or tampering with an incoming response to Unbound (canonicalisation happens before DNSSEC validation), can trigger the vulnerability.
A heap overflow condition is a buffer overflow, where the buffer that can be overwritten is allocated in the heap portion of memory, generally meaning that the buffer was allocated using a routine such as malloc().
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Unbound | Nlnetlabs | * | 1.26.1 (excluding) |
| Red Hat Enterprise Linux 10 | RedHat | unbound-0:1.24.2-7.el10_2.6 | * |
| Red Hat Enterprise Linux 8 | RedHat | unbound-0:1.16.2-5.14.el8_10.4 | * |
| Red Hat Enterprise Linux 9 | RedHat | unbound-0:1.24.2-3.el9_8.8 | * |
| Red Hat OpenShift Container Platform 4.22 | RedHat | openshift/ose-rhel-coreos-9:4.22.9.8.202609291947-0 | * |
| Red Hat Hardened Images | RedHat | unbound-main-1.26.1-1.hum1 | * |
| Unbound | Ubuntu | esm-infra-legacy/trusty | * |
| Unbound | Ubuntu | esm-infra-legacy/xenial | * |
| Unbound | Ubuntu | esm-infra/bionic | * |
| Unbound | Ubuntu | esm-infra/focal | * |
| Unbound | Ubuntu | jammy | * |
| Unbound | Ubuntu | noble | * |
| Unbound | Ubuntu | resolute | * |
| Unbound | Ubuntu | upstream | * |