Comments 36
Вот и линкуйся после этого к glibc статикой.
Ну так уже вроде тренд Hardned систем двигается к musl ;) Почему бы с ней не линковаться? http://www.etalabs.net/compare_libcs.html :)
rhel/centos/fedora уже выкатили патч в репы. Нужно ставить.
А что делает exploit? Он что-то все-таки выполняет или просто роняет клиента? Запустил, получил на клиенте SegFault и все.
Кстати… То ли они прикрыли лавочку:
То ли у меня что-то не так с glibc, но:
$ host foo.bar.google.com 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:
Host foo.bar.google.com not found: 3(NXDOMAIN)
То ли у меня что-то не так с glibc, но:
$ ./a.out
a.out: getaddrinfo: Name or service not known
Вообще, довольно странно перечислять отдельные уязвимые продукты в статье, потому что с glibc по умолчанию линкуются _все_ сишные программы при компиляции. Программы на других языках тоже часто линкуются с glibc, например в golang из glibc использовался резолвер в Linux (в версии 1.5 вроде бы используется pure-go резолвер по умолчанию, но есть опция для включения реализаци из glibc)
использование межсетевого экрана, который отклоняет UDP DNS-пакеты размером больше 512 байт
Есть готовые команды для iptables?
iptables -I INPUT -m length --length 513:0xffff -j DROP
забыли добавить --dport 53
а также второе правило, где --dport 1024:65535 --sport 53
а также второе правило, где --dport 1024:65535 --sport 53
ну, справедливости ради, я и -p udp забыл добавить :) Но как-то я всё же не сторонник медвежьих услуг с преподнесением копипасты на блюдечке. Я просто указал основное направление :)
забыли добавить --dport 53
Не нужно. Речь идет только про ответы. Так что достаточно --sport 53.
А предотвратить ответы от Вас, не?
Это разве не сломает dnssec?
UFO just landed and posted this here
Решение для iptables:
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
Не забываем про ip6tables:
ip6tables -N UDP-DNS-LIMIT
ip6tables -N TCP-DNS-LIMIT
ip6tables -A UDP-DNS-LIMIT -p udp --sport 53 -m length --length 0:512 -j ACCEPT
ip6tables -A UDP-DNS-LIMIT -p udp --sport 53 -j DROP
ip6tables -A TCP-DNS-LIMIT -p tcp --sport 53 -m length --length 0:1024 -j ACCEPT
ip6tables -A TCP-DNS-LIMIT -p tcp --sport 53 -j DROP
ip6tables -I INPUT -p tcp --sport 53 -j TCP-DNS-LIMIT
ip6tables -I INPUT -p udp --sport 53 -j UDP-DNS-LIMIT
ip6tables -I FORWARD -p tcp --sport 53 -j TCP-DNS-LIMIT
ip6tables -I FORWARD -p udp --sport 53 -j UDP-DNS-LIMIT
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
Не забываем про ip6tables:
ip6tables -N UDP-DNS-LIMIT
ip6tables -N TCP-DNS-LIMIT
ip6tables -A UDP-DNS-LIMIT -p udp --sport 53 -m length --length 0:512 -j ACCEPT
ip6tables -A UDP-DNS-LIMIT -p udp --sport 53 -j DROP
ip6tables -A TCP-DNS-LIMIT -p tcp --sport 53 -m length --length 0:1024 -j ACCEPT
ip6tables -A TCP-DNS-LIMIT -p tcp --sport 53 -j DROP
ip6tables -I INPUT -p tcp --sport 53 -j TCP-DNS-LIMIT
ip6tables -I INPUT -p udp --sport 53 -j UDP-DNS-LIMIT
ip6tables -I FORWARD -p tcp --sport 53 -j TCP-DNS-LIMIT
ip6tables -I FORWARD -p udp --sport 53 -j UDP-DNS-LIMIT
Я правильно понимаю, что если линковка динамическая, то достаточно установить пропатченную либу и программу даже не надо перезапускать?
Судя по всему Opera Software уже успела пропатчить настоящую Opera на Presto, очередное обновление спустя 2 года отсутствия их пришло:
Оперативно, молодцы! Могу продолжать пользоваться любимым браузером :)
Оперативно, молодцы! Могу продолжать пользоваться любимым браузером :)
Она же динамически линкована, и у меня обновление почему-то не пришло.
ldd opera
/usr/lib/opera$ ldd opera
linux-gate.so.1 => (0xb7740000)
libfreetype.so.6 => /usr/lib/i386-linux-gnu/libfreetype.so.6 (0xb766c000)
libfontconfig.so.1 => /usr/lib/i386-linux-gnu/libfontconfig.so.1 (0xb7629000)
libSM.so.6 => /usr/lib/i386-linux-gnu/libSM.so.6 (0xb761f000)
libICE.so.6 => /usr/lib/i386-linux-gnu/libICE.so.6 (0xb7605000)
libXext.so.6 => /usr/lib/i386-linux-gnu/libXext.so.6 (0xb75f0000)
libXrender.so.1 => /usr/lib/i386-linux-gnu/libXrender.so.1 (0xb75e4000)
libX11.so.6 => /usr/lib/i386-linux-gnu/libX11.so.6 (0xb7499000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb747b000)
librt.so.1 => /lib/i386-linux-gnu/librt.so.1 (0xb7472000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb746d000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb72f6000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb72a9000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb728a000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb70cf000)
libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb70b4000)
libpng12.so.0 => /lib/i386-linux-gnu/libpng12.so.0 (0xb7088000)
libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xb705f000)
libuuid.so.1 => /lib/i386-linux-gnu/libuuid.so.1 (0xb7058000)
libxcb.so.1 => /usr/lib/i386-linux-gnu/libxcb.so.1 (0xb7033000)
/lib/ld-linux.so.2 (0x80078000)
libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xb702f000)
libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xb7028000)
Оперативность молодцов несколько ограничена: для мака последняя версия 12.16, выпущена три года назад
А, может, это новые хозяева китайцы привнесли свои "изменения"?
Возможна ли эксплуатация через рекурсивные DNS-сервера? К примеру Unbound или PDNS? Т.е. я прописываю себе обратную зону с эксплойтом и делаю коннект на жертву на сервис, который делает PTR lookup. Пройдет ли эксплойт через рекурсинвные сервера опреатора, к которому подключена жертва и DNS оператора прописаны у жертвы.
Sign up to leave a comment.
Критическая уязвимость библиотеки glibc позволяет осуществлять удаленное выполнение кода