GHOST — уязвимость gethostbyname() в glibc

в 18:12, , рубрики: gethostbyname, Ghost, glibc, Блог компании «Digital Security», информационная безопасность, Настройка Linux

Специалисты Qualys сообщили о наличии уязвимости в gethostbyname() и gethostbyname2() в GNU
C Library (glibc), которая, как минимум в одном случае, способна привести к удаленному выполнению кода. Уязвимость позволяет перезаписать до 4 байт на 32-битных системах и до 8 байт на 64-битных системах в куче числами (0…9), точкой (.) и NULL-символом (0x00).

Уязвимость появилась в версии glibc-2.2 от 10 ноября 2000 года и была закрыта в версии 21 мая 2013 года с glibc-2.18, поэтому уязвимы только LTS-дистрибутивы Linux: Debian 7, Red Hat Enterprise Linux 6 и 7, CentOS 6 и 7, Ubuntu 12.04.

Уязвимым является код, который отвечает за получение hostname. Для перезаписи кучи, имя хоста должно удовлетворять следующим условиям:

  • Содержать в себе только цифры и точку
  • Первый символ должен быть цифрой
  • Последний символ не должен быть точкой
  • Быть достаточно длинным, чтобы переполнить буфер (>1КБ)


Следует заметить, что опасность эксплуатации значительно снижается из-за двух факторов: вызов gethostbyname() является устревшим из-за отсутствия поддержки IPv6, поэтому ПО чаще использует getaddrinfo(), чем его; вызов inet_aton() перед gethostbyname() предотвращает уязвимость.
Несмотря на эти два фактора, ребятам из Qualys удалось осуществить удаленное выполнение кода в exim4, перезаписав размер выделенного буфера и использовав встроенный в exim4 вызов $run{}. Обещают в скором времени выложить эксплоит для metasploit.

В других реализациях libc (uclibc, musl) уязвимость отсутствует.

CVE-2015-0235
Страница на qualys.com
Подробное описание в рассылке oss-security

Автор: ValdikSS

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js