Possible cache poisoning attack by mapping source port population per thread
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.
- ALSA-2026:68291
- ALSA-2026:68292
- ALSA-2026:69120
- openSUSE-SU-2026:11380-1
- openSUSE-SU-2026:21550-1
- RHSA-2026:43588
- RHSA-2026:68291
- RHSA-2026:68292
- RHSA-2026:69120
- RLSA-2026:68291
- RLSA-2026:68292
- RLSA-2026:69120
- SUSE-SU-2026:23050-1
- SUSE-SU-2026:23215-1
- SUSE-SU-2026:23226-1
- SUSE-SU-2026:23349-1
- SUSE-SU-2026:23360-1
- SUSE-SU-2026:3884-1
- SUSE-SU-2026:3885-1
- Опубликовано
- 22 июл. 2026 г.
- Обновлено
- 24 июл. 2026 г.
- EPSS
- 0,2 % · 5-й процентиль
- CWE
- CWE-349
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
22
Наблюдать
Пока низкий приоритет.
- CVSS
- 22 / 40 · 5.7 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,2 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- нет
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · NLnet Labs
- 5,7
- NVD ещё не выставил свою оценку; показана оценка CNA.
CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:H/E:P/U:Amber
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЗатронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| nlnetlabs | unbound | cpe:2.3:a:nlnetlabs:unbound |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- nlnetlabs unbound1.4.22 и новее · до 1.25.2
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (NLnet Labs). Не зависят от анализа CPE в NVD и обычно опережают его.
NLnet Labs Unbound
- 1.4.22 и новее · до 1.25.2затронута · semver
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:10 | python3-unbound | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:10 | unbound | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:10 | unbound-anchor | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:10 | unbound-devel | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:10 | unbound-dracut | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:10 | unbound-libs | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:10 | unbound-utils | до 1.24.2-7.el10_2.5 | 1.24.2-7.el10_2.5 |
| AlmaLinux:8 | python3-unbound | до 1.16.2-5.14.el8_10.2 | 1.16.2-5.14.el8_10.2 |
| AlmaLinux:8 | unbound | до 1.16.2-5.14.el8_10.2 | 1.16.2-5.14.el8_10.2 |
| AlmaLinux:8 | unbound-devel | до 1.16.2-5.14.el8_10.2 | 1.16.2-5.14.el8_10.2 |
| AlmaLinux:8 | unbound-libs | до 1.16.2-5.14.el8_10.2 | 1.16.2-5.14.el8_10.2 |
| AlmaLinux:9 | python3-unbound | до 1.24.2-3.el9_8.6 | 1.24.2-3.el9_8.6 |
| AlmaLinux:9 | unbound | до 1.24.2-3.el9_8.6 | 1.24.2-3.el9_8.6 |
| AlmaLinux:9 | unbound-devel | до 1.24.2-3.el9_8.6 | 1.24.2-3.el9_8.6 |
| AlmaLinux:9 | unbound-dracut | до 1.24.2-3.el9_8.6 | 1.24.2-3.el9_8.6 |
| AlmaLinux:9 | unbound-libs | до 1.24.2-3.el9_8.6 | 1.24.2-3.el9_8.6 |
| Alpine:v3.22 | unbound | с 1.4.22 · до 1.25.2-r0 | 1.25.2-r0 |
| Debian:12 | unbound | все версии | — |
| Debian:13 | unbound | до 1.26.1-0+deb13u1 | 1.26.1-0+deb13u1 |
| Debian:14 | unbound | до 1.25.2-1 | 1.25.2-1 |
| openSUSE:Leap 16.0 | unbound | до 1.25.2-160000.1.1 | 1.25.2-160000.1.1 |
| openSUSE:Tumbleweed | unbound | до 1.25.2-1.1 | 1.25.2-1.1 |
| Red Hat:enterprise_linux:10.2 | python3-unbound | до 0:1.24.2-7.el10_2.5 | 0:1.24.2-7.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python3-unbound-debuginfo | до 0:1.24.2-7.el10_2.5 | 0:1.24.2-7.el10_2.5 |
+39
Тот же продукт
nlnetlabs: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2019-25042Unbound before 1.9.5 allows an out-of-bounds write via a compressed name in rdata_copy.40В плане
- CVE-2019-25039Unbound before 1.9.5 allows an integer overflow in a size calculation in respip/respip.c.40В плане
- CVE-2019-25038Unbound before 1.9.5 allows an integer overflow in a size calculation in dnscrypt/dnscrypt.c.40В плане
- CVE-2019-25035Unbound before 1.9.5 allows an out-of-bounds write in sldns_bget_token_par.40В плане
- CVE-2019-25034Unbound before 1.9.5 allows an integer overflow in sldns_str2wire_dname_buf_origin, leading to an out-of-bounds write.40В плане
- CVE-2019-25033Unbound before 1.9.5 allows an integer overflow in the regional allocator via the ALIGN_UP macro.40В плане
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| NLnet Labs Unbound | 1.25.2 | Вендор (CNA) |
| azl3 unbound 1.25.1-1 on Azure Linux 3.0 | 1.25.2-1 · CBL-Mariner Releases | Microsoft (MSRC) |
| almalinux:python3-unbound | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:unbound | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:unbound-anchor | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:unbound-devel | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:unbound-dracut | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:unbound-libs | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:unbound-utils | 1.24.2-7.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| alpine:unbound | 1.25.2-r0 · Alpine:v3.22 | Реестр пакетов (OSV) |
| debian:unbound | 1.26.1-0+deb13u1 · Debian:13 | Реестр пакетов (OSV) |
| opensuse:unbound | 1.25.2-1.1 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| red hat:python3-unbound | 0:1.25.2-0.1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:python3-unbound-debuginfo | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound | 0:1.25.2-0.1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:unbound-anchor | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-anchor-debuginfo | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-debuginfo | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-debugsource | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-dracut | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-libs | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-libs-debuginfo | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:unbound-munin | 0:1.25.2-0.1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:unbound-utils | 0:1.24.2-7.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| rocky linux:unbound | 0:1.24.2-7.el10_2.5 · Rocky Linux:10 | Реестр пакетов (OSV) |
| suse:unbound | 1.25.2-160000.1.1 · SUSE:Linux Micro 6.2 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-42960с разницей 63 дн.Possible cache poisoning via promiscuous records for the authority section22Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана кем-либо из того же сегмента сети.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- Целостность
- Доступность
- Вектор атаки
- Смежная сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- X
Класс уязвимости (CWE)
CWE-349 · Acceptance of Extraneous Untrusted Data With Trusted DataВектор CVSS
CVSS:4.0/AV:A/AC:L/AT:P/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:H/SA:H/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Amber
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.