Шесть критических уязвимостей в Dnsmasq: от перехвата DNS до выполнения кода с правами root

vulnerability

Популярный сетевой пакет Dnsmasq, который используется в миллионах домашних маршрутизаторов и корпоративных устройств, оказался под ударом сразу шести серьёзных проблем безопасности. Эти уязвимости позволяют злоумышленникам перенаправлять пользователей на вредоносные сайты, получать контроль над системой и даже выполнять произвольный код с наивысшими привилегиями. Разработчики уже выпустили исправление - версию 2.92rel2.

Детали уязвимостей

Dnsmasq представляет собой компактный инструмент, объединяющий функции DNS-резолвера (сервера, преобразующего доменные имена в IP-адреса), DHCP-сервера (службы автоматической раздачи сетевых настроек), а также поддержку загрузки по сети. Именно широкая распространённость делает его привлекательной целью для злоумышленников. Проблемы были обнаружены как специалистами по безопасности, так и с помощью автоматизированного анализа, включая инструменты на основе искусственного интеллекта. Как отметил мейнтейнер проекта Саймон Келли, "цунами" отчётов об ошибках, сгенерированных ИИ, не прекращается, и патчи пришлось готовить в авральном режиме.

Все шесть уязвимостей получили идентификаторы CVE. Самая опасная из них - CVE-2026-4892. Она затрагивает реализацию протокола DHCPv6 (протокол автоматического конфигурирования сети для IPv6). Из-за ошибки в расчёте длины буфера атакующий, имеющий доступ к локальной сети, может отправить специально сформированный пакет DHCPv6 и переполнить память. В результате он получает возможность выполнить произвольный код с привилегиями root, то есть полностью захватить устройство. Проблема в том, что при записи идентификатора клиента (CLID) в буфер не учитывалось его шестнадцатеричное представление: каждый байт CLID занимает три символа (%xx), а буфер выделялся будто бы для одного байта на один символ. Это приводило к записи втрое большего объёма данных.

Вторая по степени серьёзности уязвимость - CVE-2026-2291. Она находится в функции extract_name(), отвечающей за извлечение доменных имён. Переполнение буфера здесь возникает из-за того, что не учитывается экранирование некоторых символов во внутреннем представлении имени. Атакующий может подменить записи в кэше DNS и перенаправить легитимный домен, например банковский сайт, на свой IP-адрес. Такой приём называется отравлением кэша DNS.

Ещё одна проблема - CVE-2026-4893 - связана с обходом проверки источника DNS-ответов. Уязвимость использует механизм EDNS-Client-Subnet (RFC 7871), который позволяет DNS-серверу узнавать подсеть клиента для оптимизации маршрутизации. Из-за ошибки в функции check_source() в неё передавалась длина записи OPT вместо длины всего пакета. В результате проверка всегда завершалась успехом, и злоумышленник мог подменить ответ DNS-сервера, перенаправляя пользователей на подконтрольные ему домены.

Остальные уязвимости относятся к категории "отказ в обслуживании" (DoS) или утечка информации. CVE-2026-4890 вызывает бесконечный цикл при валидации DNSSEC (криптографической проверке подлинности DNS-записей) после отправки специального пакета. Это приводит к зависанию сервиса. CVE-2026-4891 тоже связана с DNSSEC: чтение за границами буфера позволяет злоумышленнику извлечь из памяти процесса фрагменты данных, например пароли или ключи шифрования. Наконец, CVE-2026-5172 - переполнение буфера в функции extract_addresses() - вызывает аварийное завершение Dnsmasq при обработке вредоносного DNS-ответа.

Последствия этих уязвимостей крайне серьёзны. В первую очередь страдают обычные пользователи: атака на домашний роутер может привести к тому, что все запросы к почтовым сервисам, соцсетям или банкам будут перенаправлены на поддельные сайты. В корпоративной среде уязвимость может стать причиной утечки конфиденциальных данных или полного паралича сети из-за отказа DNS-сервера. Особенно опасно сочетание нескольких уязвимостей: например, сначала злоумышленник может с помощью CVE-2026-4890 вызвать отказ, а затем, воспользовавшись временным сбоем, подменить записи кэша с помощью CVE-2026-2291.

Разработчики Dnsmasq уже выпустили стабильную версию 2.92rel2, в которой закрыты все шесть дыр. Также доступны отдельные патчи для тех, кто не может обновить пакет целиком. В ближайшее время ожидается выход версии 2.93rc1 и стабильной 2.93. Мейнтейнеры настоятельно рекомендуют всем операторам сетей, использующим Dnsmasq, как можно скорее установить обновление. Особенно это касается производителей домашних маршрутизаторов и встроенных устройств - они должны выпустить прошивки с исправленным компонентом.

В целом ситуация показывает, насколько уязвимой может быть базовая инфраструктура интернета. Даже небольшая ошибка в одном из самых распространённых сетевых инструментов способна поставить под угрозу безопасность миллионов устройств. Исправление таких проблем требует оперативных действий от всех участников цепи: от разработчиков open source до поставщиков оборудования. Пока же пользователям остаётся лишь следить за обновлениями и не откладывать их установку.

Ссылки

 

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