Разработчики популярного DNS-сервера Unbound выпустили обновление версии 1.25.1, которое закрывает одиннадцать брешей в системе безопасности. Особую тревогу вызывает критическая проблема, обозначенная как CVE-2026-33278: она даёт злоумышленнику возможность удалённо выполнить произвольный код на сервере. Ещё три уязвимости отнесены к высокому уровню опасности, остальные - к среднему.
Детали уязвимостей
Упомянутая критическая брешь кроется в модуле валидации DNSSEC - технологии, которая проверяет подлинность DNS-записей с помощью цифровых подписей. Исследователь из компании Palo Alto Networks Цифань Чжан обнаружил, что при обработке ответов на запросы DNSSEC происходит ошибочное копирование структур данных. Из-за этой ошибки указатель на блок памяти после освобождения остаётся доступным, и при определённых условиях атакующий может заставить сервер выполнить свой вредоносный код. Достаточно, чтобы жертва отправила запрос на подконтрольную зону, содержащую вредоносные подписи. Проблема затрагивает все версии Unbound с 1.19.1 по 1.25.0. Разработчики исправили её, добавив правильное сохранение указателя при глубоком копировании.
Второй по степени угрозы стала уязвимость CVE-2026-42944, которая приводит к переполнению кучи. Она возникает при обработке специальных EDNS-опций (расширений протокола DNS) - в частности, NSID (идентификатора сервера имён), DNS Cookie и EDNS Padding. По умолчанию эти опции включены, а значит, сервер уязвим. Атакующий может отправить запрос с множеством таких опций, и из-за ошибки в расчёте размера поля EDNS происходит переполнение буфера. Результат - отказ в обслуживании (аварийная остановка сервера) или теоретически выполнение кода. Патч удаляет дублирующиеся опции и исправляет вычисления.
Ещё одна опасная брешь - CVE-2026-44608, связанная с обращением к уже освобождённой памяти в коде RPZ (механизм фильтрации ответов DNS на основе зон). Проблема проявляется, когда сервер работает в многопоточном режиме и одновременно выполняет обновление RPZ-зоны по протоколу XFR (передача зон DNS). Если в такой зоне используются триггеры rpz-nsip или rpz-nsdname, то во время загрузки зоны один поток может освободить блок памяти, а другой - попытаться прочитать уже удалённые данные. Это приводит к аварийному завершению работы сервера. Уязвимость затрагивает версии с 1.14.0 по 1.25.0. Патч исправляет блокировки в коде.
Остальные восемь уязвимостей имеют средний уровень серьёзности, но большинство из них также способны вызвать отказ в обслуживании или ухудшение производительности. Например, CVE-2026-42959 приводит к аварийному завершению при обработке вредоносного DNSSEC-ответа с определённым сочетанием записей DNAME и CNAME. CVE-2026-32792 возникает только при сборке Unbound с поддержкой DNSCrypt (шифрование DNS) - специальный запрос с нулевыми байтами вызывает переполнение кучи. CVE-2026-40622 продолжает серию атак "призрачных доменов": она позволяет на один TTL (время жизни записи в кеше) продлить резолвинг удалённого домена. CVE-2026-41292 - атака на производительность через отправку слишком большого числа EDNS-опций, которые надолго занимают процессор. CVE-2026-42534 обходит механизм "толчеи" (jostle logic), который при перегрузке замещает медленные запросы новыми - из-за обновления таймера дублирующих запросов он перестаёт корректно работать. CVE-2026-42923 не учитывает лимит хэш-вычислений NSEC3 (используются для доказательства отсутствия записи) в одном из путей кода, что приводит к деградации производительности. CVE-2026-42960 позволяет отравить кеш сервера (cache poisoning) через подставные записи в дополнительном разделе ответа. Наконец, CVE-2026-44390 дополняет исправление прошлой бреши: неограниченное сжатие имён в ответах с очень большими наборами записей может надолго заблокировать процессор.
Разработчики уже опубликовали патчи для каждой уязвимости отдельно, а также объединённый патч. Всем администраторам настоятельно рекомендуется как можно скорее обновиться до версии 1.25.1 или применить соответствующие исправления вручную. Учитывая, что многие компании и интернет-провайдеры используют Unbound для разрешения доменных имён, промедление может стоить безопасности всей инфраструктуры.
Ссылки
- https://nlnetlabs.nl/projects/unbound/security-advisories/
- https://github.com/NLnetLabs/unbound/releases/tag/release-1.25.1