В dnsmasq выявлены 6 уязвимостей, допускающие отравление DNS-кэша и выполнение кода с правами root

от автора

В открытом проекте dnsmasq (кэширующий DNS-резолвер, сервер DHCP, сервис для анонсов маршрутов IPv6 и систему загрузки по сети) эксперты по ИБ обнаружили 6 уязвимостей, допускающие возможность выполнить код с правами root, перенаправить домен на другой IP, определить содержимое памяти процесса и вызвать аварийное завершение сервиса. Уязвимости устранены командой проекта в выпуске dnsmasq 2.92rel2, а также фиксы доступны в виде патчей.

По информации OpenNET, экспертами выявлены такие уязвимости:

  • CVE-2026-4892 — переполнение буфера в реализации DHCPv6, позволяющее атакующему, имеющему доступ к локальной сети, выполнить код с правами root через отправку специально оформленного пакета DHCPv6. Переполнение вызвано тем, что при записи DHCPv6 CLID в буфер не учитывалось то, что в пакете данные сохраняются в шестнадцатеричном представлении, в котором используется три байта «%xx» на каждый фактический байт CLID (например, сохранение 1000-байтового CLID приведёт к записи 3000 байт);

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

  • CVE-2026-4893 — утечка информации, позволяющая обойти проверку через отправку специально оформленного DNS‑пакета с информацией о подсети клиента (RFC 7871). Уязвимость может использоваться для изменения маршрута DNS‑ответа и перенаправления пользователей на домен атакующего. Уязвимость вызвана тем, что в функцию check_source() передавалась длина записи OPT вместо длины пакета, из‑за чего функция всегда возвращала успешный результат проверки;

  • CVE-2026-4891 — чтение из области вне границы буфера при валидации DNSSEC, приводящее к утечке в ответе данных из памяти процесса при обработке специально оформленного DNS‑запроса;

  • CVE-2026-4890 — зацикливание при валидации DNSSEC, позволяющее вызвать отказ в обслуживании через отправку специально оформленного DNS‑пакета;

  • CVE-2026-5172 — чтение из области вне буфера в функции extract_addresses(), приводящее к аварийному завершению при обработке специально оформленных DNS‑ответов.

Статус устранения этих уязвимостей в dnsmasq в дистрибутивах Linux можно оценить на данных страницах (если страница недоступна, значит разработчики дистрибутива ещё не приступили к рассмотрению проблемы): Debian, Ubuntu, SUSE, RHEL, Gentoo, Arch, Fedora, OpenWRT, FreeBSD.

Также проект dnsmasq задействован в платформе Android и специализированных дистрибутивах, таких как OpenWrt и DD‑WRT, а ещё и в прошивках беспроводных маршрутизаторов многих производителей. В обычных дистрибутивах dnsmasq может устанавливаться при использовании libvirt для обеспечения работы DNS‑сервиса в виртуальных машинах или активироваться в конфигураторе NetworkManager.

ссылка на оригинал статьи https://habr.com/ru/articles/1034486/