Четыре опасные уязвимости в DNS-сервере BIND 9: угроза отказа в обслуживании и повреждения памяти

BIND

Двадцатого мая 2026 года организация Internet Systems Consortium (ISC) опубликовала сразу четыре бюллетеня безопасности, затрагивающих популярный DNS-сервер BIND 9. Все обнаруженные уязвимости получили высокий уровень серьезности - от 7,4 до 7,5 балла по шкале CVSS. Проблемы затронули широкий спектр версий: от старых веток 9.0.0 до актуальных 9.21.21, включая выпуски BIND Supported Preview Edition (специализированная предварительная версия для клиентов поддержки ISC). Это означает, что под угрозой находятся как авторитетные серверы, так и рекурсивные резолверы, используемые в корпоративных сетях, дата-центрах и у провайдеров.

Каждая из уязвимостей позволяет удалённо вызвать отказ в обслуживании. В одном случае возможна также утечка конфиденциальной информации. Хотя на момент публикации ISC не располагает данными об активной эксплуатации, эксперты настоятельно рекомендуют как можно скорее установить исправления.

Первая уязвимость: истощение памяти через GSS-API TKEY (CVE-2026-3039)

Эта проблема затрагивает практически все версии BIND 9, которые используют аутентификацию на основе TKEY-токенов (механизм обмена ключами) через протокол GSS-API. Такая конфигурация типична для DNS-серверов, интегрированных с Active Directory, а также для сред, защищённых Kerberos (протокол аутентификации). Злоумышленник отправляет специально сформированные пакеты, из-за чего сервер выделяет память под эти запросы, но не освобождает её. В результате при большом количестве таких пакетов процесс named (исполняемый файл BIND) полностью исчерпывает доступную память и аварийно завершает работу. По сути, атакующий может парализовать работу DNS-инфраструктуры, не имея никаких учётных данных.

Вторая уязвимость: гонка условий при проверке SIG(0) (CVE-2026-5947)

Здесь проблема носит более тонкий характер. BIND 9 версий 9.20 и 9.21 (а также соответствующие версии Preview Edition) уязвимы к состоянию гонки. Когда сервер получает DNS-сообщение, подписанное записью SIG(0) (механизм аутентификации транзакций), он запускает проверку подписи. Если в этот же момент достигается лимит по количеству одновременно обрабатываемых рекурсивных запросов (так называемый "recursive-clients") - что может произойти, например, в результате флуда запросами - обрабатываемое сообщение отбрасывается. Однако проверка подписи уже начала работу, и она пытается прочитать уже освобождённую область памяти. Это приводит к так называемому "использованию после освобождения" (dangling pointer). Последствия неопределённы: сервер может упасть с ошибкой сегментации, либо проверка случайно завершится успешно, если память ещё не перезаписана. Важно, что уязвимость затрагивает как авторитетные серверы, так и резолверы.

Третья уязвимость: некорректная обработка DNS-сообщений с классом, отличным от IN (CVE-2026-5946)

Эта проблема охватывает ещё более широкий диапазон версий - начиная с 9.11.0. BIND 9 неправильно обрабатывает DNS-сообщения, у которых в поле CLASS указано не "IN" (Internet - класс для обычных интернет-запросов), а, например, "CHAOS" или "HESIOD", или мета-классы "ANY" и "NONE". Если такой запрос попадает на определённые участки кода - рекурсию, динамическое обновление (UPDATE), уведомления об изменении зоны (NOTIFY) или обработку IN-специфичных типов записей в не-IN данных - происходит сбой утверждения (assertion failure) и сервер аварийно завершает работу. Достаточно одного специально сформированного пакета, чтобы вывести из строя сервер DNS. В качестве временной меры ISC рекомендует не настраивать зоны с не-IN-классами, а также не открывать сервер, разрешающий динамическое обновление, в общий интернет.

Четвёртая уязвимость: повреждение памяти в реализации DNS-over-HTTPS (CVE-2026-3593)

Эта уязвимость затрагивает только версии BIND 9 начиная с 9.20.0, а также Preview Edition на их основе. Проблема кроется в реализации DNS-over-HTTPS (протокол передачи DNS-запросов через HTTPS, обычно использует HTTP/2). Специально сформированный трафик HTTP/2, отправленный на конечную точку DNS-over-HTTPS, может вызвать повреждение памяти в куче (heap corruption). Сценарий использования памяти после освобождения (use-after-free) позволяет атакующему не только вызвать отказ в обслуживании, но и, в определённых условиях, добиться утечки данных из памяти сервера. К счастью, эта уязвимость не затрагивает конфигурации, где DNS-over-HTTPS отключён. Таким образом, администраторы, не использующие эту функцию, могут просто её не включать - это станет эффективным обходным путём.

Что делать администраторам

Все четыре уязвимости не имеют известных обходных путей (за исключением отключения DNS-over-HTTPS и отказа от не-IN-классов). ISC уже выпустила исправленные версии: 9.18.49, 9.20.23, 9.21.22 для основной ветки, а также 9.18.49-S1 и 9.20.23-S1 для версий Preview Edition. Администраторам необходимо как можно быстрее обновить уязвимые инсталляции. Особое внимание стоит обратить на системы, интегрированные с Active Directory или использующие Kerberos: для них критична первая уязвимость. Также важно проверить, включён ли DNS-over-HTTPS - если нет, четвёртая проблема неактуальна.

Последствия и прогноз

Хотя пока нет сообщений об активном использовании этих уязвимостей, это не повод для промедления. DNS-серверы - фундаментальная часть сетевой инфраструктуры. Отказ в обслуживании DNS может парализовать работу веб-сайтов, почтовых сервисов, внутренних корпоративных приложений и даже систем аутентификации. В связи с этим каждый администратор, использующий BIND 9, должен считать обновление приоритетной задачей. Кроме того, инцидент в очередной раз подчёркивает важность регулярного мониторинга уведомлений от ISC и своевременного применения патчей. В мире информационной безопасности промедление часто равнозначно согласию на атаку.

Ссылки

Комментарии: 0