Skip to content
OpenAdvisories
Medium · 5.7 CVE-2026-50252 EUVD-2026-47676GHSA-jfgc-mgqq-r573

Possible cache poisoning attack by mapping source port population per thread

Published Jul 22, 2026 · Updated Jul 22, 2026 · Assigned by NLnet Labs

Description

In NLnet Labs Unbound 1.4.22 up to and including 1.25.1, UDP source port is randomized and intended to serve as a secret value that increases the entropy of DNS transactions. When resolver load balancing policies depend on the source port while their outcome is revealed this secrecy is undermined. The vulnerability arises when the load balancing policy is consistent with respect to the incoming source UDP port and IP address while heavily depending on the incoming source UDP port as a randomization source. When the SO_REUSEPORT configuration option is enabled ('so-reuseport: yes') in Unbound (by default), it meets these conditions, making it vulnerable for DNS cache poisoning attacks. Upon startup, Unbound randomly partitions the available UDP source port space into disjoint subsets of (almost) equal size, assigning each subset to a specific worker thread. When an incoming DNS query is received, the kernel’s SO_REUSEPORT load balancing mechanism deterministically assigns the query to a socket associated with a particular thread. All outgoing DNS queries generated during the resolution of that request use source ports selected exclusively from the port subset assigned to the corresponding thread. Since these port subsets are disjoint across threads, the source port observed in a resolver’s outgoing query to an authoritative name server serves as a reliable indicator of the worker thread that processed the original client query. A malicious actor can acquire the mapping between incoming UDP source ports (for a given fixed source IP address) and Unbound worker threads and leverage it to conduct DNS cache poisoning attacks by effectively lowering the random port population per thread.

Affected products

VendorProductAffectedFixed
NLnet Labs Unbound 1.4.22 – < 1.25.2 1.25.2

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 unbound 1.25.2-1 —
Debian 13 unbound 1.26.1-0+deb13u1 —
Debian 12 unbound No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 unbound 1.25.1-1ubuntu3.1 USN-8946-2
Ubuntu 26.04 LTS unbound 1.24.2-1ubuntu2.4 USN-8946-1
Ubuntu 24.04 LTS unbound 1.19.2-1ubuntu3.12 USN-8946-1
Ubuntu 22.04 LTS unbound 1.13.1-1ubuntu5.17 USN-8946-1
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 20.04 LTS unbound 1.9.4-2ubuntu1.11+esm3 USN-8946-1
Ubuntu Pro 18.04 LTS unbound 1.6.7-1ubuntu2.6+esm6 USN-8946-1
Ubuntu Pro 16.04 LTS unbound 1.5.8-1ubuntu1.1+esm5 USN-8946-1
Ubuntu Pro 14.04 LTS unbound 1.4.22-1ubuntu4.14.04.3+esm5 USN-8946-1
ReleasePackageFixed inAdvisory
RHEL 10 unbound +6 1.24.2-7.el10_2.5 RHSA-2026:68291
RHEL 9 unbound +4 1.24.2-3.el9_8.6 RHSA-2026:68292
RHEL 8 unbound +3 1.16.2-5.14.el8_10.2 RHSA-2026:69120
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Red Hat Hardened Images 1 unbound +7 1.25.2-0.1.hum1 RHSA-2026:43588

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 10 unbound +6 1.24.2-7.el10_2.5 ALSA-2026:68291
AlmaLinux 9 unbound +4 1.24.2-3.el9_8.6 ALSA-2026:68292
AlmaLinux 8 unbound +3 1.16.2-5.14.el8_10.2 ALSA-2026:69120

Rocky Linux

Errata ↗
ReleasePackageFixed inAdvisory
Rocky Linux 10 unbound 1.24.2-7.el10_2.5 RLSA-2026:68291
Rocky Linux 9 unbound 1.24.2-3.el9_8.6 RLSA-2026:68292
Rocky Linux 8 unbound 1.16.2-5.14.el8_10.2 RLSA-2026:69120
ReleasePackageFixed inAdvisory
SLES 15 SP7 unbound 1.25.2-150600.23.19.1 SUSE-SU-2026:3885-1
SLES 15 SP6 unbound 1.25.2-150600.23.19.1 SUSE-SU-2026:3885-1
SLES 15 SP5 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
SLES 15 SP4 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
Show 11 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 unbound 1.25.2-160000.1.1 SUSE-SU-2026:23226-1, SUSE-SU-2026:23215-1
SLES for SAP 15 SP6 unbound 1.25.2-150600.23.19.1 SUSE-SU-2026:3885-1
SLES for SAP 15 SP5 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
SLES for SAP 15 SP4 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
SLES 16.0 unbound 1.25.2-160000.1.1 SUSE-SU-2026:23226-1, SUSE-SU-2026:23215-1
SLE Micro 6.2 unbound 1.25.2-160000.1.1 SUSE-SU-2026:23050-1
SLE Micro 6.1 unbound 1.25.2-slfo.1.1_1.1 SUSE-SU-2026:23349-1
SLE Micro 6.0 unbound 1.25.2-1.1 SUSE-SU-2026:23360-1
SLE Micro 5.5 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
SLE HPC 15 SP5 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
SLE HPC 15 SP4 unbound 1.25.2-150100.10.28.1 SUSE-SU-2026:3884-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed unbound 1.25.2-1.1 openSUSE-SU-2026:11380-1
openSUSE Leap 16.0 unbound 1.25.2-160000.1.1 openSUSE-SU-2026:21550-1
ReleasePackageFixed inAdvisory
Alpine v3.24 unbound 1.25.2-r0 —
Alpine v3.23 unbound 1.25.2-r0 —
Alpine v3.22 unbound 1.25.2-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 unbound +5 1.17.1-1.amzn2023.0.13 ALAS2023-2026-2033

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 unbound 1.25.2-1 —

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 10 unbound +6 1.24.2-7.el10_2.5 ELSA-2026-68291
Oracle Linux 9 unbound +4 1.24.2-3.el9_8.6 ELSA-2026-68292
Oracle Linux 8 unbound +3 1.16.2-5.14.el8_10.2 ELSA-2026-69120

Advisories 27

References