Уязвимость в SSH-сервере из Erlang/OTP, допускающая удалённое выполнение кода

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 4135
Зарегистрирован: 20.08.2022

#

Уязвимость в SSH-сервере из Erlang/OTP, допускающая удалённое выполнение кода
Дата публикации:Fri, 18 Apr 2025 10:09:21 +0300




В библиотеке ssh, входящей в состав инструментария Erlang/OTP, выявлена уязвимость (CVE-2025-32433), позволяющая удалённо без прохождения аутентификации выполнить свой код на SSH-сервере, созданном с использованием уязвимой библиотеки. Проблема присвоен критический уровень опасности (10 из 10).





Один из исследователей безопасности уже подготовил рабочий эксплоит для выполнения кода на уязвимых SSH-серверах. Примечательно, что по словам исследователя код был создан с использованием AI-ассистентов GPT-4, Cursor и Sonnet на основе анализа изменения с исправлением уязвимости, включающего тест для проверки исправления проблемы. Библиотека от проекта Erlang/OTP предоставляет готовые реализации клиента и сервера SSH и SFTP, поддерживающих протокол SSH 2.0.



SSH-серверы на базе Erlang/OTP используются в специализированных системах, например, на IoT- и устройствах для edge-вычислений, а также в качестве отладочного инструмента (Erlang позволяет легко включить SSH-сервер для удалённой отладки своих приложений). Проблема проявляется инструментарии Elixir (реализован поверх Erlang) и во фреймворке Phoenix на его основе, но SSH-сервер в нём по умолчанию не принимает запросы из внешних сетей. Отличить проблемные SSH-серверы можно по выводу заголовка "SSH-2.0-Erlang/версия".




Уязвимость вызвана ошибкой в коде разбора сообщений, из-за которой сообщения SSH_MSG_CHANNEL_REQUEST, допускающие выполнение команды "exec", обрабатывались на стадии до прохождения аутентификации. Пример кода из эксплоита:


command = 'file:write_file("/lab.txt", <<"pwned">>).'
return (
b"\x62" # SSH_MSG_CHANNEL_REQUEST
+ struct.pack(">I", channel_id)
+ string_payload("exec")
+ b"\x01" # want_reply = true
+ string_payload(command)
)






Уязвимость устранена в выпусках Erlang/OTP-27.3.3, 26.2.5.11 и 25.3.2.20. Проследить за устранением уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD.


Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63099

Жизнь за Нер'зула!

Ответить