Critical Cache Poisoning Vulnerability in Dnsmasq
Критическая уязвимость кэш-подмены в Dnsmasq
Тип: логическая ошибка защиты от кэш-подмены
ПО: все версии Dnsmasq
Оценка: критическая
Условия: атакующий вне сети, перебирает TxID и порт (~2,5 ч)
Суть
Dnsmasq пересылает запросы со спецсимволами (~
, !
, *
, _
) вышестоящим резолверам. Некоторые из них молча отбрасывают такие запросы, не отвечая NXDomain/ServFail. Dnsmasq не замечает тишины и ждёт, открывая большое окно для подбора 16-битного TxID и порта (birthday-paradox).
Результат
- 20/20 успешных экспериментов
- Среднее время атаки ≈ 9 469 с
- Позволяет отравить любой кэшированный домен без фрагментации IP или побочных каналов
- Усиливает известные атаки SADDNS и Tudoor
PoC
Для домена viticm.com
запросы с «тихими» символами приводили к молчанию upstream, что использовалось для надёжного отравления кэша.
Рекомендации
- Детектировать молчание upstream
- Ввести rate-limit и защиту от spoof, как в PowerDNS