В OpenSSH 3.5p1 из состава FreeBSD 4.x найдена удаленная root-уязвимость

В списке рассылки full-disclosure представлена критическая уязвимость в используемой во FreeBSD 4.x версии OpenSSH, позволяющая удаленному злоумышленнику без аутентификации получить root-доступ к системе. Уже создан и публично опубликован эксплоит, позволяющий получить привилегированный shell на подверженных уязвимости серверах.

Уязвимость проявляется для протоколов SSH1 и SSH2. Проблема вызвана ошибкой в реализации аутентификации с использованием PAM на платформе FreeBSD. Проблема присутствует в функции "pam_thread()" из файла auth2-pam-freebsd.c. Начиная с версии FreeBSD 5.2 содержащий уязвимость файл auth2-pam-freebsd.c был заменен новой реализацией, т.е. с большой долей вероятности можно утверждать, что новые версии FreeBSD проблеме не подвержены. 100% уверенности пока нет, так как точно не ясно, не перекочевал ли проблемный код в какие-либо библиотеки PAM или сторонние реализации OpenSSH, используемые и поныне. Детальный аудит ещё предстоит провести.

Ошибка проявляется при передаче слишком длинного имени пользователя. Простой способ проверить наличие уязвимости - попытаться обратиться к своему серверу, указав логин порядка 100 символов. Например: "ssh -l`perl -e 'print "A" x 100'` хост", в случае проблемы, можно наблюдать крах рабочего процесса sshd и вывод в лог /var/log/messages сообщения "/kernel: pid N (sshd), uid 0: exited on signal 11 (core dumped)". Изучение core-дампа показало, что проблема подвержена эксплуатации, так как атакующий может контролировать указатель перехода и позиционировать его на shellcode. Прототип рабочего эксплоита был успешно создан путем небольшой модификации кода ssh-клиента из пакета OpenSSH 5.8p2.

    $ ./ssh -1 192.168.1.1   $ nc -v -l -p 10000   listening on [any] 10000 ...   192.168.1.1: inverse host lookup failed: Unknown host   connect to [192.168.1.1] from (UNKNOWN) [192.168.1.2] 1038     uname -a     FreeBSD h4x.localdomain 4.11-RELEASE FreeBSD 4.11-RELEASE #0: Fri Jan 21 17:21:22 GMT 2005 /GENERIC i386    id    uid=0(root) gid=0(wheel) groups=0(wheel)  

Поддержка ветки FreeBSD 4.x прекращена ещё в 2007 году, но данная версия все еще используется на некоторых серверах в сети. Пользователям версии FreeBSD 4.x рекомендуется срочно обновить OpenSSH до более новой версии. В качестве обходного пути решения проблемы следует разрешить через пакетный фильтр доступ по SSH только для доверительных хостов и отключить поддержку PAM, указав в настройках "ChallengeResponseAuthentication no". Информации о возможности поражения других операционных систем, использующих устаревшие версии OpenSSH с реализацией поддержки PAM от проекта FreeBSD, пока нет.

Источник:
http://www.opennet.ru/opennews/art.shtml?num=31053

<= Назад
Комментарии
]]> ipv6 ready Kiev LUGLinux4MeНостальгияЛичный сайт skeletora ]]>