CVE-2026-50046: Possible heap use-after-free in an error path when a DoT forwarded query is jostled out
In NLnet Labs Unbound 1.15.0 up to and including 1.25.1, the TLS server name used for DNS-over-TLS (DoT) forwarded queries is tied to a struct's ('servicedquery') lifetime but also referenced by another struct ('waitingtcp'). When the owning struct is jostled out of the mesh while the DoT TCP stream is still handshaking it frees the storage behind the referenced string and if the TLS stream then errors out, it dereferences the freed pointer. The dereference is read-only and the practical impact is a daemon crash resulting in denial of service. A malicious actor that knows a DoT forwarding/stub Unbound's configuration could exploit the vulnerability by quering records in the appropriate zone while keeping Unbound uder pressure so that the jostle logic kicks in. If answers for the vulnerable zone are slow, the likelihood of jostling such queries is higher, although the timing of the jostle needs to be precise. Requirements for a vulnerable Unbound is the existence of a stub/forward zone configured for DoT together with a configured '#authname' suffix on the server identification. The connectivity to the server needs to exhibit a transient failure at the correct time in order to kick off the vulnerable error path.
Other sources
Possible heap use-after-free in an error path when a DoT forwarded query is jostled out
— Microsoft
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.25.2-1 - Upgrade
Upgrade
NLnet Labs Unboundto a version that resolves this vulnerability.Fixed in 1.25.2 - Compensating control
If running an affected NLnet Labs Unbound version (1.15.0 through 1.25.1), reduce the ability for a malicious actor to trigger DoT forwarded query jostling by restricting/ACL’ing access so only trusted resolvers/clients can query the DoT stub/forwarded zones configured for DoT (and with a configured #authname server identification suffix).
- Operational
After upgrading Unbound to 1.25.2 or later, restart the Unbound daemon to ensure the process using the previous heap state is fully replaced.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-50046?
CVE-2026-50046 has a medium severity score of 5.9.
How does CVE-2026-50046 affect Nlnet Labs Unbound?
CVE-2026-50046 can cause a use-after-free vulnerability in the handling of DNS-over-TLS queries.
What versions of Unbound are impacted by CVE-2026-50046?
CVE-2026-50046 affects Nlnet Labs Unbound versions from 1.15.0 up to and including 1.25.1.
How do I mitigate CVE-2026-50046?
To mitigate CVE-2026-50046, update Nlnet Labs Unbound to the latest patched version.
What is the nature of the vulnerability identified in CVE-2026-50046?
CVE-2026-50046 is a possible heap use-after-free vulnerability occurring in an error path related to DNS-over-TLS.