Pull to refresh

Comments 25

Что-то не понял. Судя по статье это как же надо сойтись звездам, чтобы можно было эту уязвимость эксплуатировать? И что если мои хостнэймы не подпадают под вышеперечисленные критерии?
Для того, чтобы появилась возможность выполнения кода, нужно здорово постараться. Парням просто повезло с организацией памяти в exim4, и с тем, что есть функция run{} именно там, где должна быть. А чтобы уронить программу, достаточно того, чтобы хостнейм соответствовал описанным критериям.
(убежал срочно патчиться...)
UFO just landed and posted this here
Навскидку проглядывается следующий способ эксплуатации:

1. Зарегить домен (или взять уже зарегистрированный) и организовать ему поддержку DNS;
2. Прописать ему в качестве MX-записи вредоносное имя хоста;
3. Зарегиться на каком-нибудь Web-сервисе, отправляющем почту через exim4, указав при регистрации e-mail в подготовленном домене. Сервис передаст мэйлеру письмо с подтверждением регистрации, тот для отправки письма найдёт MX-запись домена и дальше полезет на хост.
4. Профит.
Прописать искомое в PTR хоста, стукнуться в exim телнетом по ipv4 и сказать EHLO — вот тут будет профит.
Все экзимы к утру полягут, если такую ptr-ку сделать смогут.
Не знаю, насколько PTR-записи в Сети допустимы на своих DNS-серверах. А на чужих могут и не дать сохранить килобайтную запись.
Все PTR-записи расположены на чьих-то dns-серверах =)
Так что тут вопрос только в наличии своей сети.
UFO just landed and posted this here
вызов inet_aton() перед gethostbyname()

Не совсем понял практику использования этих двух функций вместе. Может первое вместо второго? Или gethostbyaddr() вместо gethostbyname()?
Некоторые программы сначала вызывают inet_aton(), и если он не смог распарсить адрес, то gethostbyname(). А хост, который выполнить уязвимость, «выглядит» как IP-адрес (т.е. имеет 4 октета, цифры и точки).
Это я понял, спасибо. Я не понял как надо совместно использовать inet_aton() и gethostbyname(), чтоб избежать проблем ?:)
Вы отредактировал коммент и мой потерял смысл. :) Теперь я понял, спасибо.
— Содержать в себе только цифры и точку
— Первый символ должен быть цифрой

Не могу найти это в оригинале. Кто может процитировать?

Интересно, как скоро в репах Цента появится обновленная версия.
Ждать можно долго… В Debian уже есть. Для CentOS вот так:
sed -i 's/^mirrorlist=/#mirrorlist=/' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/^#baseurl=/baseurl=/' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache fast
yum update glibc
sed -i 's/^#mirrorlist=/mirrorlist=/' /etc/yum.repos.d/CentOS-Base.repo
sed -i 's/^baseurl=/#baseurl=/' /etc/yum.repos.d/CentOS-Base.repo
yum clean all
yum makecache fast
Только 2.12-1.149, новее в их репах не появилось.
В 6-м центосе 2.12-1.149 это как раз версия с фиксом)
Объясните пожалуйста, в описании уязвимости описан случай Экзима, но, насколько я понял из того же описания, это по-большому счету проблемы того же Экзима + микроскопическая уязвимость в glibc.
Да, Ред Хат говорят, что это critical vulnerability, но мне кажется, они так говорят автоматически на все, что содержит «arbitrary code execution», неважно при каких условиях это может быть получено.
Я не понимаю, как это может угрожать тем, кто не использует Экзим? Реально не понимаю.
Данная уязвимость позволяет удаленно перезаписать хоть и пару, но байт в программе, но, в целом, вы в чем-то правы: уронить программу может быть достаточно просто, а выполнить код в ней — сложно, если вообще возможно.
проблема в том, что подвержена этому багу неопределённая тонна программ, вполне корректно использующие этот вызов из glibc.
и без анализа каждой конкретной нельзя сказать, что она иммунна к нему.
например экзим оказался хоть и с диким переподвыподвертом — но узявим до уровня реально эксплуатируемого RCE.
как выяснилось, весьма популярный форум на php тоже оказался уязвим.
и никто не может сказать какое количество еще самых неожиданных мест окажется уязвимым.

именно поэтому, это и критикал.
Sign up to leave a comment.