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

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6000
ОС: gnu/linux

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

Сообщение rssbot »

В списке рассылки 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


оригинал на opennet.ru
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

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

Сообщение sash-kan »

даже странно, почему-то не сработало железобетонное правило: опубликуешь код под лицензией bsd — сразу из него исчезнут все ошибки, а сам код немедленно преобразуется в «нетленку»·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

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

Сообщение Stauffenberg »

Кто-нибудь мне может объяснть почему надо иметь свою версию OpenSSH, т.е. почему бы не использовать OpenBSD-версию?
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали: