LINUX.ORG.RU

Релиз OpenSSH 9.8p1 с исправлением уязвимости

 , , ,


1

3

В OpenSSH нашли дыру, позволяющую удалённо выполнить код с правами root без аутентификации. Уязвимости подвержены только сервера на Linux с библиотекой glibc, использующие OpenSSH от версии 8.5p1 до 9.7p1 включительно. Проблема заключается в состоянии гонки в обработчиках сигналов.

Атака продемонстрирована пока что только в лабораторных условиях на 32-битных системах и занимает порядка 6-8 часов. 64-битные системы в теории тоже уязвимы, но из-за гораздо большего пространства адресов, используемого для ASLR, эксплуатация пока что не была возможной.

Системы с другими реализациями libc также могут быть подвержены уязвимости. OpenBSD же всё ещё остаётся оплотом безопасности.

>>> Подробный разбор уязвимого кода

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 5)

@maxcom ты очень быстро подтвердил. Я не успел доредактировать :D

Добавь вот это в текст плз:

Атака продемонстрирована пока что только в лабораторных условиях на 32-битных системах и занимает порядка 6-8 часов. 64-битные системы в теории тоже уязвимы, но из-за гораздо большего пространства адресов, используемого для ASLR, эксплуатация пока что не была возможной.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

Ага, я уже про это написал, сейчас заменю на твой вариант.

maxcom ★★★★★
()

Традиционно: решето.

liksys ★★★☆
()

только в лабораторных условиях на 32-битных системах

Осталось найти лабораторию и 32-битный сервер...

Dr64h ★★
()
Ответ на: комментарий от Dr64h

Осталось найти лабораторию и 32-битный сервер…

32-битных железок дохрена. Весь STM32. Мир встройки он чудовищно разнообразный: в мире сто пудово есть куча STM32 железок на лялексе, которые торчат SSH как минимум в LAN.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 2)
Ответ на: комментарий от cumvillain

32-битных железок дохрена. Весь STM32.

И на них, конечно же, 32-битный слюникс с glibc и openssh.

Там дыра в том, что OpenSSH в люниксе после LoginGraceTime (120 секунд дефолт) ловит SIGALRM, обработчик которого потом зовёт всякие небезопасные функции типа syslog(). Поэтому для эксплуатации нужно делать 100500 висящих соединений и ждать-ждать-ждать, пока у одного из них гонка сработает.

В случае с STM32 это всё вряд ли случится.

в мире сто пудово есть куча STM32 железок на лялексе, которые торчат SSH как минимум в LAN.

Ставлю пиво, что на таких железках поголовно dropbear или busybox.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от hateyoufeel

В случае с STM32 это всё вряд ли случится.

Они достаточно быстрые, их никто не мониторит, так что почему бы и нет?

Ставлю пиво, что на таких железках поголовно dropbear или busybox.

Это вероятно, но не всегда.

cumvillain
()
Ответ на: комментарий от cumvillain

Это вероятно, но не всегда.

Да нет, почти наверняка всегда. Туда glibc тупо по памяти не влезет. Типичная плата с STM32 имеет несколько метров в лучше случае.

Я скорее поверю в какую-нибудь древнюю говноплату на armv6 с дебианом чем в STM32 с glibc.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от thunar

Я доделяль

Р Е Ш Е Т О !
Е Ш Е Т О ! Р
Ш Е Т О ! Р Е
Е Т О ! Р Е Ш
Т О ! Р Е Ш Е
О ! Р Е Ш Е Т
! Р Е Ш Е Т О
zimniy
()
Ответ на: комментарий от hateyoufeel

поголовно dropbear или busybox.

В массе да, но далеко не на всех. OpenSSH тоже есть.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от cumvillain

Весь STM32

Ты тупой, не пиши ничего больше про эту область. Кроме не прям популярного MP1 в stm32 семействе чего-то на чём бы МАССОВО крутился линукс c openssh не существует.

А вот 32-bit armv4-7 железок с openssh в мире до чёрта, но в большинстве своём они голой жопой в интернеты торчат редко, обычно или в lan, или в cgnat.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Ты тупой, не пиши ничего больше про эту область. Кроме не прям популярного MP1 в stm32 семействе чего-то на чём бы МАССОВО крутился линукс c openssh не существует.

Куча ARM бордов, лол.

cumvillain
()

Молодцы. Орлы.

seiken ★★★★★
()

Можно добавить, что в качестве временного решения до обновления можно выставить LoginGraceTime в 0 в sshd_config и перезапустить демон. sshd всё ещё будет уязвим для DoS, но код удалённо будет уже не выполнить.

dsl
()
Последнее исправление: dsl (всего исправлений: 1)

Хм, в фрибсд12 которую я использую версия 9.1 - теоретически уязвимо? С другой стороны, на большинстве экземпляров 64 бита, да и голый ssh в инет уже давным давно не свечу.

firkax ★★★★★
()
Ответ на: комментарий от dsl

На самом деле, эту дыру без проблем закрывает fail2ban, который, я надеюсь, настроен у каждого адекватного админа локалхоста.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от firkax

Во freebsd-security@ пишут, что это регрессия от CVE-2006-5051 которую уже фиксили и снова внесли в OpenSSH 8.5p1 случайно. Так что похоже да, уязвимо. Я на своих машинах выставил LoginGraceTime до того момента, когда руки дойдут до обновления. Ребята даже freefall и кластер начали обновлять экстренно.

dsl
()

В OpenSSH нашли дыру

Не дыру, а ошибочно созданное технологическое отверстие)

iron ★★★★★
()

Давно пора этого монстра выкинуть и переписать на Rust альтернативу попроще.

Зачем вообще ему рут?

vbr ★★★★
()
Ответ на: комментарий от cumvillain

Зачем вообще ему рут?

Чтобы тебя залогинить под твоим пользователем.

В современном мире рут для этого нахрен не всрался. Можно запускать ssh-сервер под каждого нужного юзера и всё. Заодно выкинуть концепт привилегированных портов (<1024) и тупо выдать каждому юзеру отдельный интерфейс со своим IP. Хоть какое-то применение IPv6 будет.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от hateyoufeel

В современном мире рут для этого нахрен не всрался. Можно запускать ssh-сервер под каждого нужного юзера и всё.

Нет, нельзя. LDAP, скрипты PAM, вот это все. Ну и я полагаю они сейчас отойдут от этой истории – будет сетевой процесс, который тупо коннекты принимает, будет рутовый процесс, который тебя логинит. А дальше сессия от пользователя.

cumvillain
()
Последнее исправление: cumvillain (всего исправлений: 1)
Ответ на: комментарий от cumvillain

Зачем вообще ему рут?

Чтобы тебя залогинить под твоим пользователем.

Для этого достаточно быть запущенным под моим пользователем.

vbr ★★★★
()
Ответ на: комментарий от cumvillain

Нет, нельзя. LDAP, скрипты PAM, вот это все

Это всё не нужно. На моём локалхосте этого нет, значит никому не нужно. А безопасность нужна всем.

vbr ★★★★
()
Ответ на: комментарий от cumvillain

Нет, нельзя. LDAP, скрипты PAM, вот это все.

Про LDAP согласен. PAM можно в принципе под юзером пускать.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от vbr

На моём локалхосте этого нет, значит никому не нужно.

Ну… форкай, пиши свой.

cumvillain
()

OpenBSD же всё ещё остаётся оплотом безопасности.

оплотом безумия и вотчиной маньяков.

splinter ★★★★★
()
Ответ на: комментарий от cumvillain

Плюс fail2ban в том, что он не только с opens работает.

WatchCat ★★★★★
()
Ответ на: комментарий от cobold

Да, у них есть imsg через unix socket. Но это сильно меньше действий.

cumvillain
()
Ответ на: комментарий от vbr

Ещё как добавляет, убирает целый класс уязвимостей.

... заменяя их на свои...

Somebody
()
Ответ на: комментарий от vbr

Давно пора этого монстра выкинуть и переписать на Rust альтернативу попроще.

А чего мелочиться? Нужно просто взять и переписать linux и весь софт для него на Java.

QsUPt7S ★★
()
Ответ на: комментарий от hateyoufeel

И часто админы настраивают fail2ban на таймауты? Потому что никакого fail на авторизацию нет, вся суть уязвимости в том, что вместо того, чтобы получать ключи-пароли, sshd простаивает до самого SIGALRM.

Более того, что-то я сходу не нахожу в логах хоть что-нибудь про таймауты, по крайней мере с LogLevel INFO.

thriller ★★
()
Ответ на: комментарий от thriller

И часто админы настраивают fail2ban на таймауты?

Админы настраивают fail2ban на количество подключений. Если у тебя с одного IP внезапно сотня подключений раз за разом, то наверное что-то не так.

hateyoufeel ★★★★★
() автор топика
Ответ на: комментарий от cumvillain

И только на 32-разрядных системах. Если 32-битные архитектуры и используются, то в эмбедеде. А там для отладки существует serial console.

hateWin ★☆
()
Ответ на: комментарий от hateyoufeel

Если у тебя с одного IP внезапно сотня подключений раз за разом

Давно таких скрипткидов не видел, сплошные боты из китайского сегмента и клиенты прокси-ферм на айпишниках опсосов. С последними fail2ban малоэффективен будет.

thriller ★★
()

в лабораторных условиях на 32-битных системах и занимает порядка 6-8 часов

Расходимся.

Gonzo ★★★★★
()
Ответ на: комментарий от vbr

Ну так и не юзай на своём локалхосте openssh, кто ж тебя заставляет? Ставь dropbear и вперед.

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.