The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

18.04.2025 10:09

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

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

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

Уязвимость вызвана ошибкой в коде разбора сообщений, из-за которой сообщения 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.

  1. Главная ссылка к новости (https://www.openwall.com/lists...)
  2. OpenNews: Уязвимость в libssh, приводящая к переполнению буфера
  3. OpenNews: Уязвимость в OpenSSH, позволяющая удалённо выполнить код с правами root на серверах с Glibc
  4. OpenNews: Уязвимость в поставляемом во FreeBSD варианте OpenSSH, допускающая удалённое выполнение кода
  5. OpenNews: Mayhem - атака, искажающая биты в памяти для обхода аутентификации в sudo и OpenSSH
  6. OpenNews: Удалённо эксплуатируемая уязвимость в OpenSSH ssh-agent
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63099-ssh
Ключевые слова: ssh, erlang
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.4, vantoo (ok), 10:51, 18/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +11 +/
    На IoT, конечно, пофиксят дыру очень быстро (нет).
     
     
  • 2.52, Аноним (-), 16:27, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > На IoT, конечно, пофиксят дыру очень быстро (нет).

    В каком, нахрен IoT этот шланг вообще нашли? Очередной вулн где при всем его 10 из 10 долбануть почти нечего. Какой-то кучке телефонистов, конечно, прилетит.

     

  • 1.38, Аноним (38), 13:17, 18/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Эрланг довольно нишевый инструмент. Здесь кичатся матаном, но чаще это защита нишевости ("Мы не как все, у нас серьёзные технологии!"). Но по факту можно годами писать на Эрланге, не зная никакой сложной математики (если не лезть в distributed algorithms, но это проблема любой distributed-системы, хоть на Go, хоть на C++). Elixir вообще позиционируется как "дружелюбный" язык - и там те же возможности, но с приятным синтаксисом. Сложность Эрланга преувеличена - она не в математике, а в смене парадигмы.
     
     
  • 2.39, Аноним (39), 13:59, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Эрланг — это не матан, эрланг — это перекладывание пакетов в сложных сетях телекома.
     
     
  • 3.74, эксперт по всему (?), 23:30, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    никто не перекидывает пакеты эрлангом, его используют для обработки сигнализационного трафика, которого мало
     
  • 2.41, Аноним (41), 14:31, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Эликсир эдакая замена ноде. И в плане производительности тоже. Зато скалируется хорошо. Но всё равно весьма специфично, большинство приложений не микросервисы. Матан это разве не про хаскел? Собственно, популярность хаскела вполне отражает востребованность подобного.
     
     
  • 3.48, Аноним (48), 15:28, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >Матан это разве не про хаскел?

    Нет, это заблуждение

     
     
  • 4.49, Аноним (41), 15:40, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>Матан это разве не про хаскел?
    > Нет, это заблуждение

    Мне сложно представить, кому ещё могут понадобиться функторы и монады. Как результат, единственное применение у ЯП это DSL.

    В таком случае, мне не понятно, почему любая функциональщина (вроде эрланга и эликсира) должна ассоциироваться с математикой. С ней может ассоциироваться разве что вольфрам. Ну и фортран при _очень_ большом желании, больше с ним делать нечего.

     
     
  • 5.54, Аноним (48), 16:30, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >почему любая функциональщина должна ассоциироваться с математикой

    Так она и не должна, но кто-то это придумал и повторяет упорно.

     
  • 5.69, Аноним (-), 18:54, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > В таком случае, мне не понятно, почему любая функциональщина (вроде эрланга и
    > эликсира) должна ассоциироваться с математикой.

    Наверное потому что это продвигают обычно - отбитые на всю бошку математики, которым абстракции покруче дай, хлебом не корми. То что потом эти какахи майнтайнить вообще никто не хочет, ибо раскуривать полет мысли убер-гения всем просто лениво - их не парит. Зато это парит всех остальных - и получается характерный проект, где все эти навороты фигачит 1 человек. А когда ему надоедает, или на него падает автобус, или что там блин еще - проект как раз и оказывается заброшкой. Навечно.

     
  • 5.75, Нуину (?), 02:21, 19/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Мне сложно представить, кому ещё могут понадобиться функторы и монады.

    Кому-кому, последователям теории множеств)

    А монады есть много где. Банально std::optional<T>::and_then (она даже в документации называется Monadic operations)

     
  • 2.44, Аноним (-), 15:01, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Логично, его даже создавали для телекомов Матан это было не только про расписыв... большой текст свёрнут, показать
     
     
  • 3.71, Аноним (-), 18:59, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Точно так же можно рассказать про хаскель.
    > Но что-то неосиляторов на порядок больше чем для какого-то ПХП или СИ.

    Потому что представьте себе. Например мне нужно фичу в энном проекте.

    1) В проекте 1 мне надо вгрузить в мою голову половину мозга кодера, чтобы сделать там даже самый маленький патчик на незначительную фичу, нужную лично мне.

    2) В проекте 2 я могу просто пойти и сделать, решив свою проблему. Здесь и сейчас, за 5 минут.

    Вопрос: что же я выберу? Неделями пыхтеть над крутыми абстракциями? Или пойти и сделать? Ну вы поняли. И вон тем, так то, тоже надо - решение задач, а не высокие концепции.


     
     
  • 4.82, Аноним (48), 11:57, 19/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >1) В проекте 1 мне надо вгрузить в мою голову половину мозга кодера, чтобы сделать там даже самый маленький патчик на незначительную фичу, нужную лично мне.

    Жёстко. Надеюсь, никого из сишников это не оскорбит.

     
  • 2.77, Нуину (?), 02:29, 19/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Здесь кичатся матаном

    А кто кичится?

     

  • 1.40, YetAnotherOnanym (ok), 14:09, 18/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > например, на IoT-

    EVM, вообще-то, не такая уж и легковесная штуковина. Кто и зачем стал бы вкорячивать её в контроллер со слабым процессором и ограниченным объёмом памяти - не могу себе представить.

     
  • 1.50, Аноним (50), 15:59, 18/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    >exec

    Классика бэкдоров для кода на "безопасных" ЯП. Не нравятся бэкдоры? Иди сам свою собственную программу разрабатывай, со всеми зависимостями.

     
     
  • 2.73, YetAnotherOnanym (ok), 20:09, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эрланг не позиционировался как "безопасный", то есть исключающий возможность писать с ошибками. Эрланг позиционировался как дающий возможность писать "неубиваемые" программы, способные тащить стопицот одновременных соединений. А накосячить в нём - легко, есть даже книжечка с обзором и разбором наиболее распространённых ошибок - "Erlang in anger".
     
  • 2.79, Пустотеев (ok), 09:05, 19/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Классика бэкдоров для кода на "безопасных" ЯП.

    Ты не разобрался. Это не типичный exec("some_prog $user_dirty_variable")

     

  • 1.51, Аноним (-), 16:16, 18/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Уязвимость вызвана ошибкой в коде разбора сообщений, из-за которой сообщения SSH_MSG_CHANNEL_REQUEST,
    > допускающие выполнение команды "exec", обрабатывались на стадии до прохождения аутентификации.

    Нормальная такая ошибка.

    p.s. а CVE то они как получили? :)

     
     
  • 2.62, Аноним (62), 18:12, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это же ssh, иначе как он без экзека
     
     
  • 3.65, Аноним (65), 18:23, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Через библиотеку… А нет, сорян, это ж опенсорс, тут хорошо делать почти никто не умеет, страдайте с exec тогда и скажите спасибо Тео.
     
     
  • 4.80, Пустотеев (ok), 09:40, 19/04/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 3.72, Аноним (-), 19:04, 18/04/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Ну это же ssh, иначе как он без экзека

    Да я не про то, MITRE же - шатдаунили недавно? Для оптимизации DOGE-коина.

     

  • 1.76, Нуину (?), 02:28, 19/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Примечательно, что по словам исследователя код был создан с использованием AI-ассистентов GPT-4, Cursor и Sonnet на основе анализа изменения с исправлением уязвимости

    А хваленый Codepilot не смог найти? Он же вроде подсказывать должен в пулл реквестах.

     
     
  • 2.78, Аноним (-), 08:01, 19/04/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Эти AI, такие AI... Пока его не пнёшь в нужном направлении, он может слона не заметить.
     

  • 1.81, Аноним (81), 10:26, 19/04/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Автор я опять делаю работу за тебя.

    Версия 25 вышла 2 years and 11 months ago (17 May 2022).

    Итого этот бэкдор не больше трех лет проработал.

    Всё таки тысячи глаз видят что-то…

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру