В утилите mtr обнаружена уязвимость, вызывающая отказ в обслуживании через подменённый DNS-ответ

vulnerability

В сетевой диагностической утилите mtr (My TraceRoute) выявлена уязвимость, связанная с чтением за пределами выделенной памяти. Проблема зарегистрирована как CVE-2026-14461 и получила оценку 5,1 балла по шкале CVSSv4, что соответствует среднему уровню опасности. Атакующий, способный влиять на содержимое DNS-ответов, может вызвать аварийное завершение программы.

Уязвимость CVE-2026-14461

Уязвимость затрагивает функцию ipinfo_lookup(), которая обрабатывает TXT-записи DNS - они используются для получения информации об автономных системах (AS) при трассировке маршрута. Внутри этой функции вызывается dn_expand() - стандартный парсер имён DNS. Разработчики mtr полагались на длину полученного DNS-ответа как на границу сообщения для этого парсера. Однако если ответ превышает 512 байт и содержит специально сформированный сжатый указатель в поле NAME (сжатие позволяет компактно представлять имена, ссылаясь на предыдущие фрагменты), то в процессе разбора указатель может выйти за фактическую область памяти. В результате возникает выход за границу чтения, и функция аварийно завершает работу, что ведёт к крашу самой утилиты.

Для эксплуатации злоумышленнику необходимо перехватить или подменить DNS-ответ, который mtr получает при выполнении AS-запроса. Такой сценарий возможен, если атакующий контролирует DNS-сервер, к которому обращается утилита (например, через компрометацию локального кэширующего резолвера или проведение атаки "человек посередине" на уровень DNS). В результате mtr может неожиданно завершиться, что приведёт к отказу в обслуживании самого инструмента. Это не позволяет сетевому администратору провести диагностику маршрута и задержек в нужный момент.

mtr - популярный инструмент, объединяющий функции traceroute и ping. Он широко используется системными администраторами, инженерами эксплуатации и специалистами по сетям для выявления проблем с маршрутизацией, измерения потерь пакетов и задержек. Хотя краш mtr не представляет прямой угрозы для серверной инфраструктуры или целостности данных, он может помешать расследованию инцидента в критический момент. Например, при анализе сетевого сбоя во время атаки или аварии внезапное завершение утилиты испортит лог или прервёт сбор статистики.

На момент публикации официальных сообщений об активной эксплуатации уязвимости в реальных атаках не поступало. Однако описанный сценарий демонстрирует, что даже простая ошибка выхода за границы массива в популярной утилите может быть обращена в средство для создания помех при администрировании.

Производитель BitWizard уже исправил проблему. Фикс внесён в коммит 48e1794414d338ce47abc0f27c25ade8788af9c3. Пользователям рекомендуется обновить mtr до версии, включающей этот патч, - обычно достаточно загрузить последнюю сборку из официального репозитория. Если обновление невозможно, можно временно отказаться от использования функции ipinfo_lookup() или настроить фильтрацию DNS-ответов на уровне межсетевого экрана, хотя эти меры менее надёжны.

Подобные уязвимости остаются типичными для приложений, написанных на C, где безопасное манипулирование границами буферов требует особой внимательности. Инцидент напоминает о важности регулярного обновления даже инструментов, которые не выглядят критическими - в сетевой диагностике каждый компонент должен быть устойчив к атакам, чтобы не стать слабым звеном в цепочке реагирования на инциденты.

Ссылки

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