На прошлой неделе Консорциум разработчиков эталонного софта для интернет-систем (ISC) выпустил патчи для DNS-сервера BIND. Соответствующие уязвимости позволяют вызвать крах демона named (DoS) и оценены как высокой степени опасности (в 7,5 балла CVSS).
Согласно бюллетеню, проблема CVE-2023-2828 вызвана некорректной реализацией функции, отвечающей за очистку кеша, когда named работает как рекурсивный резолвер. По умолчанию под такие записи ресурсов выделяется до 90% объема памяти на хосте; когда лимит исчерпан на ⅞, алгоритм начинает удалять устаревшие или наименее используемые наборы записей (RRset) из кеша.
Как оказалось, эффективность этого алгоритма можно снизить, запросив специфические RRset в определенном порядке. В итоге лимит будет превышен, что приведет к исчерпанию памяти на хосте с экземпляром named.
Уязвимость CVE-2023-2829 проявляется лишь в том случае, когда демон работает как рекурсивный резолвер, проверяющий подлинность данных по подписи DNSSEC. Злоумышленник может с помощью запроса вызвать отказ named, используя зону с искаженной NSEC-записью.
В BIND 9.18, 9.18-S и новее опция валидации по DNSSEC по умолчанию активна. Если ее отключить, эксплойта не произойдет.
Уязвимость CVE-2023-2911 тоже проявляется в режиме резолвера, притом тогда, когда число рекурсивных запросов достигло допустимого максимума и настройки сервера позволяют возвращать ранее кешированные ответы. Последовательность запросов, заставляющих named отдавать одни и те же данные, может привести к зацикливанию и краху из-за переполнения буфера в стеке.
Патчи включены в состав обновлений BIND 9.16.42, 9.18.16 и 9.19.14, а также BIND Supported Preview Edition 9.16.42-S1 и 9.18.16-S1. Данных об использовании какой-либо из перечисленных уязвимостей в атаках на настоящий момент нет.