
Это анализ уязвимости CVE-2025-32433 (Erlang OTP SSH). Я не писал никакого кода, я только написал комментарии, описывающие, что делает код, и инструкции по настройке сервера, чтобы вы могли самостоятельно воспроизвести эксплойт.
Часто задаваемые вопросы — CVE-2025-32433
Что такое Erlang OTP? Erlang — это язык программирования общего назначения. OTP (Open Telecom Platform) — это набор промежуточного ПО, библиотек и принципов проектирования, используемых для обеспечения отказоустойчивости с помощью BEAM VPN.
Почему эта версия Erlang уязвима? Версия OTP 26.2.5.10 уязвима, потому что SSH-сервер не отклоняет должным образом определённые сообщения протокола SSH-соединения до того, как клиент пройдёт аутентификацию. Типичный процесс:
Клиент подключается к SSH-серверу.
Клиент и сервер согласовывают алгоритмы SSH и выполняют криптографический обмен ключами.
Устанавливается зашифрованное SSH-соединение. --ЗДЕСЬ НАЧИНАЕТСЯ НАСТОЯЩИЙ ЭКСПЛОЙТ
Клиент начинает аутентификацию пользователя, например с помощью пароля или открытого ключа.
Если аутентификация успешна, клиент может открывать SSH-каналы и запрашивать через них операции.
Почему это проблема: В уязвимой версии сервер может обрабатывать определённые пакеты протокола соединения, включая SSH_MSG_CHANNEL_OPEN, до того, как аутентификация пользователя будет успешно завершена. Таким образом, атакующий может установить транспортное SSH-соединение, но пропустить успешную аутентификацию пользователя, а затем отправлять сообщения, которые должны приниматься только от аутентифицированного пользователя. В конечном счёте это может позволить неаутентифицированное удалённое выполнение кода.
Как я могу воспроизвести это самостоятельно? Скачайте и распакуйте это Откройте его в VS Code Установите Docker Desktop и войдите в Docker Desktop Выполните в этом каталоге команду: docker build -t local-erlang-ssh . Выполните команду: docker run --rm -it -p 127.0.0.1:2222:2222 local-erlang-ssh Откройте новый PowerShell и проверьте, что он запустился: Test-NetConnection 127.0.0.1 -Port 2222 Подождите минуту, и должно появиться TcpTestSucceeded: true Перейдите к python-файлу и нажмите «Выполнить» Теперь в терминале должен появиться эксплойт Выполните команду "docker ps", чтобы получить идентификатор контейнера. Затем вставьте эту команду docker exec CONTAINER_ID cat /lab.txt Должно вернуться слово "pwned", показывающее, что эксплойт сработал. Чтобы остановить контейнер, вернитесь в исходный терминал, где вы запускали docker-контейнер, и нажмите Control+C (возможно, придётся сделать это дважды).
Как я могу защитить свои устройства от этой уязвимости? Если у вас есть SSH-сервер Erlang OTP, обновите его до версии 26.2.5.11 или новее.
Где я могу узнать больше? Уберите "[" и "]" вокруг знаков препинания — я ненавижу горячие ссылки. Оригинальный код Мэтта Кили: https[:]//github[.]com/ProDefense/CVE-2025-32433/blob/main/CVE-2025-32433.py Пошаговый разбор Мэтта Кили того, как он создал код: https[:]//platformsecurity[.]com/blog/CVE-2025-32433-poc Сайт NIST: https[:]//nvd.nist[.]gov/vuln/detail/CVE-2025-32433 Erlang: https[:]//www.youtube[.]com/watch?v=M7uo5jmFDUw