Критическая уязвимость библиотеки glibc

Критическая уязвимость библиотеки glibc позволяет осуществлять удаленное выполнение кода

Исследователи Google обнаружили критическую уязвимость в библиотеке glibc (GNU C Library). В функции getaddrinfo(), которая отвечает за разбор доменных имен, происходит переполнение буфера — ошибка позволяет злоумышленникам осуществлять удаленное выполнение кода.

 

Эксплуатация уязвимости, получившей обозначение CVE-2015-7547, возможна в случаях, когда уязвимые устройства или приложения отправляют запросы контролируемым хакерами доменам и серверам, а также в случае проведения атаки типа man-in-the-middle.

В своем блоге исследователи Google пишут, что обнаружили уязвимость, когда в используемом ими SSH-клиенте при попытке соединения с определенным адресом раз за разом начала возникать ошибка сегментации. В ходе разбирательств выяснилось, что всему виной переполнение буфера в glibc, и что эта ошибка может приводить к удаленному выполнению кода.

 

Библиотека glibc используется в большом количестве популярных Linux-приложений — по утверждениям исследователей, уже подтверждена информация об уязвимости утилит wget, SSH, sudo и curl. Общее число уязвимых приложений столь велико, что составить полный список не представляется возможным — в разговоре с изданием Ars Technica исследователь безопасности Кен Уайт заявил, что уязвимость содержится во всех дистрибутивах Linux, а также языках программирования Python, PHP, Ruby on Rails. Есть сообщения о том, что ошибка содержится и в большей части приложений для работы с криптовалютой биткоин.

 

К удивлению исследователей, оказалось, что мейнтейнеры, ответственные за glibc, знали об ошибке еще в июле прошлого года. Кроме того, выяснилось, что параллельно с экспертами Google и независимо от них уязвимость обнаружили и специалисты Red Hat — продукты этой компании также уязвимы (список). В итоге две команды объединили усилия для создания патча.

 

На Github также доступна proof-of-concept-реализация эксплоита.

 

https://habrahabr.ru/company/pt/blog/277383/

ttttt
2016-02-17 18:22:58
Avatar

Вчера обсуждали на HN.

Для end-of-life дистров по идее можно спастить файрволом или локальным рекурсивным резолвером, которые дропают ответы больше 512 байт. Не без ущерба, конечно же.

 

Файрволом:

iptables -t filter -A INPUT -p udp --sport 53 -m connbytes --connbytes 512: --connbytes-dir reply --connbytes-mode bytes -j DROP

iptables -t filter -A INPUT -p tcp --sport 53 -m connbytes --connbytes 512: --connbytes-dir reply --connbytes-mode bytes -j DROP

 

BIND 9.3.2+, в options в named.conf:

edns-udp-size: 512

 

Unbound, в server в unbound.conf:

edns-buffer-size: 512

 

Еще можно избавиться от резолва в некоторых местах, как sshd, если прописать в /etc/hosts.allow IP адреса, с которых вы ходите на сервер:

sshd : 1.2.3.4 : allow

sshd : ALL : deny

 

kvirtu
2016-02-17 20:42:15
Avatar

еще рекомендуют:

В /etc/resolv.conf добавить:      
   options edns0

Lynx100
2016-02-17 23:46:00
Avatar

с фаерфолом еще такой рецепт есть

 

iptables -N UDP-DNS-LIMIT
iptables -N TCP-DNS-LIMIT
iptables -A UDP-DNS-LIMIT -p udp --sport 53 -m length --length 0:512 -j ACCEPT
iptables -A UDP-DNS-LIMIT -p udp --sport 53 -j DROP
iptables -A TCP-DNS-LIMIT -p tcp --sport 53 -m length --length 0:1024 -j ACCEPT
iptables -A TCP-DNS-LIMIT -p tcp --sport 53 -j DROP
iptables -I INPUT -p tcp --sport 53 -j TCP-DNS-LIMIT
iptables -I INPUT -p udp --sport 53 -j UDP-DNS-LIMIT
iptables -I FORWARD -p tcp --sport 53 -j TCP-DNS-LIMIT
iptables -I FORWARD -p udp --sport 53 -j UDP-DNS-LIMIT

kit3
2016-02-18 11:08:57
Avatar

С опеннет: "Исправление пока доступно в виде патча. Обновления с устранением уязвимости пока выпущены только для RHEL6/7 и Debian (eglibc, glibc). Оценить появление обновлений в других дистрибутивах можно... ".

В Gentoo тоже обновление прилетело.

You should to log in

loading