LINUX.ORG.RU

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

 


0

2

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

Выявленные проблемы:

  • 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-ответов.

Статус устранения уязвимостей в дистрибутивах можно оценить на данных страницах (если страница недоступна, значит разработчики дистрибутива ещё не приступили к рассмотрению проблемы): Debian, Ubuntu, SUSE, RHEL, Gentoo, Arch, Fedora, OpenWRT, FreeBSD. Проект Dnsmasq задействован в платформе Android и специализированных дистрибутивах, таких как OpenWrt и DD-WRT, а также в прошивках беспроводных маршрутизаторов многих производителей. В обычных дистрибутивах Dnsmasq может устанавливаться при использовании libvirt для обеспечения работы DNS-сервиса в виртуальных машинах или активироваться в конфигураторе NetworkManager.

>>> Источник

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

У уязвимостей обычно бывает уровень опасности / критичности, что стоит написать. Для того, чтобы решить, нужно ли бежать, пересобирать openwrt на роутере или ещё пару лет пожить можно

One ★★★★★
()
Ответ на: комментарий от IPR

То ли ещё будет, когда большая часть выполняющегося в мире кода будет сгенерена нейрослопом по промптам недалёких маркетологов, а фиксить и ревьювить будет некому, потому что эффективные менеджеры отправили быдлокодеров зарабатывать на панель. Пофиксят сами же нейронки?

Вы, несомненно правы, вы мыслите как настоящий эксперт! Сейчас я перепишу проект учитывая ваши замечания.

Logopeft ★★★
()
Ответ на: комментарий от Logopeft

Так он про это и пишет - если бредогенераторы не отобрать то скоро куча софта будет написана ими и соответственно будет дырявой.

firkax ★★★★★
()
Ответ на: комментарий от zabbal

Про то что dnsmasq решето известно уже давно, см. похожие темы:

DNSpooq — семь новых уязвимостей в dnsmasq (2021)

И там же:

Systemd решето (2018)

firkax ★★★★★
()
Ответ на: комментарий от One

если в твоей квартирной сети есть телефон с максом/сбербанком/госуслугами то они одним udp-пакетом угонят твой роутер с опенврт и установят на него бекдор от гебухи.

a__
()

на абдроидах прокатит?

mittorn ★★★★★
()

Говнокод какой-то. Непонятная константа 100 в коде..

dynamic_cast
()

Вообще, хорошим тоном, при публикации такого вот является не ссылка на сайт какого-то дистрибутива (если разговор идет о CVE), а хотя-бы на сайт opencve.io

И тогда по ссылке типа: https://app.opencve.io/cve/CVE-2026-4892

Мы видим всю информацию. Включая уровень угрозы (что является самым важным). Для примера по этой ссылке мы видим уровень угрозы 8.4, что является достаточно высоким уровнем. Там-же видно, что вектор атаки по данной уязвимости - локальный, что несколько снижает накал, но все равно стоит напрячься для исправления.

А вот уже по ссылке в новости мы видим, что в дебиан (а по ссылке в новости мы можем судить только о дебиан) - проблема уже исправлена и нужно просто банально обновиться.

Для первой ссылки версии пакетов следующие: bookworm - 2.90-4~deb12u2, trixie - 2.91-1+deb13u1

DrRulez ★★★★★
()
Ответ на: комментарий от DrRulez

Да ладно, что там Дебиан. Вот куча домашних мыльниц-маршрутизаторов, на которых неведомо когда прошивка обновится. Да и не понятно, почему CVE-2026-4892 даёт root, а CVE-2026-2291 только отравление DNS-кеша, хотя и там и там переполнение буфера.

mky ★★★★★
()
Ответ на: комментарий от Somebody

Невозможно это

systemd-resolved в OpenWrt и Android?

mky ★★★★★
()
Ответ на: комментарий от zabbal

Давно пора валить на systemd-resolved.

Не представляется возможным - там нет простого краткого аналога --server=/domain1/domain2/domain3/server и ipset/nftset.

yandrey ★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.