Glibc, библиотека C проекта GNU, уличенная в прошлом году в наличии бреши GHOST, содержит еще одну критическую уязвимость, которая затрагивает почти все Linux-машины, а также использующие этот код API веб-сервисов и фреймворки.

Для бреши, параллельно обнаруженной исследователями из Google и Red Hat, уже выпущен патч. В бюллетене Google CVE-2015-7547 охарактеризована как переполнение стекового буфера в клиентском DNS-резолвере glibc. Данная уязвимость проявляется при вызове функции getaddrinfo() библиотеки; ее эксплуатация позволяет удаленно выполнить код на Linux-машине.

«Выходящие за пределы буфера байты полностью контролируются атакующим и являются результатом специально оформленного DNS-ответа», — поясняет Карлос О’Доннел (Carlos O’Donnell) в аналогичном бюллетене Red Hat. О’Доннел и его сослуживец Флориан Ваймер (Florian Weimer) работали над созданием патча вместе с коллегой из Google Фермином Серной (Fermin J. Serna).

«Анализ конверта пакета показал, что существует реальная возможность записи корректно оформленного DNS-ответа с контролируемой атакующими нагрузкой, которая проникает в иерархию кэшей DNS и, таким образом, позволяет злоумышленникам эксплуатировать машины с подобной кэш-памятью», — пишет далее О’Доннел. Эксперт полагает, что данная уязвимость затрагивает все Linux-серверы и веб-фреймворки, такие как Rails, PHP и Python, а также Android-приложения, использующие glibc.

Уведомление о CVE-2015-7547 появилось на трекере ошибок glibc в минувшем июле, однако этот баг был, по всей видимости, привнесен еще в мае 2008 года, с выпуском glibc 2.9. Сведениями о публичных эксплойтах Google не располагает.

«В ходе локального тестирования нам удалось исполнить один вызов free() через переполнение буфера и установить контроль над EIP, — комментирует результаты О’Доннел. — Идти далее мы не стали, однако даже такая попытка эксплойта показывает, что контроль над исполнением можно установить без особого труда».

Эксперты призывают админов незамедлительно установить патч. «Он расценивается как неотложный, его следует установить в кратчайшие сроки», — заявил Кеннет Уайт (Kenneth White), ИБ-исследователь и директор Open Crypto Audit Project (OCAP).

Исследователи из Google со своей стороны подтвердили, что данному багу подвержены все версии glibc начиная с 2.9. Они также предлагают временное решение: «Уязвимость полагается на слишком большой (2048+ байт) размер ответа по UDP или TCP, за которым следует другой ответ, переписывающий стек. Мы предлагаем ограничить размер ответов (к примеру, с помощью DNSMasq или аналогичной программы), принимаемых локальным DNS-резолвером, а также разрешить отправку DNS-запросов лишь на серверы, лимитирующие размер UDP-отклика установкой бита truncation (сокращения)».

Эксперты Google указали также несколько векторов возможной атаки, в том числе ssh, sudo и curl. «Удаленное исполнение кода возможно, но не напрямую, — добавляют исследователи. — Для этого нужно обойти средства защиты, имеющиеся в системе, такие как ASLR».

Категории: Уязвимости