Удалённо эксплуатируемая уязвимость в Glibc, охватывающая большинство сетевых приложений в Linux
Проблема вызвана переполнением буфера в NSS-модуле nss_dns, которое присутствует в обработчиках запросов как по UDP (send_dg), так и по TCP (send_vc). Уязвимость проявляется при вызове функции getaddrinfo в режимах AF_UNSPEC или AF_INET6, использование которых приводит к одновременной отправке двух запросов для получения данных для типов записей A (IPv4) и AAAA (IPv6). Суть проблемы в том, что буфер для сохранения результата создаётся ненадлежащего размера и хвост ответа записывается в область стека за пределом буфера (в буфер 2048 может придти до 65535 байт данных). Для демонстрации уязвимости подготовлен рабочий прототип эксплоита.
Проблема присутствует с мая 2008 года, начиная с выпуска glibc 2.9. Инженеры Google обратили внимание на уязвимость столкнувшись с повторяющимся крахом клиента SSH при попытке обращения к одному из хостов. В процессе разбора уязвимости инженеры Google с удивлением обнаружили, что информация об уязвимости уже сообщалась разработчикам Glibc людьми столкнувшимися с похожими проблемами и находится в системе отслеживания ошибок Glibc с 13 июля 2015 года. Написав о проблеме сопровождающим Glibc, исследователи узнали, что два сотрудника Red Hat тоже обратили внимание на данную ошибку и занимаются её анализом.
Исправление пока доступно в виде патча. Обновления с устранением уязвимости пока выпущены только для RHEL 6/7 и Debian (eglibc, glibc). Оценить появление обновлений в других дистрибутивах можно на следующих страницах: Ubuntu, Fedora,openSUSE, SLES, Slackware, Gentoo, CentOS. В качестве обходных мер защиты рекомендуется ограничить на межсетевом экране максимальный размер DNS-ответов значением в 512 байт для UDP и 1024 байт для TCP.
Источник: http://www.opennet.ru/opennews/art.shtml?num=43886
|
0 | Tweet | Нравится |
|