In NLnet Labs Unbound up to and including 1.26.0, a vulnerability was found in that can progressively corrupt heap memory and under certain systems and compilation options could lead to remote code execution. The vulnerability starts when CNAME synthesis during an upstream response needs to enforce(rewrite) a max TTL value in the packet buffer. Coupled with a compression pointer that points to the overwritten value and invalidates the domain name, it leads to an error path that does not properly move the buffer position and allows for the heap buffer overflow. Since this is heavily reliant on heap memory layout, results are memory corruption that eventually leads to a crash and under specific systems and compilation options remote code execution.
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 | rhcos-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 | * |