OTP SSH - CVE-2025-32433

"A serious vulnerability has been identified in the Erlang/OTP SSH server that may allow an attacker to perform unauthenticated remote code execution (RCE)."

The SSH server accepts and processes certain message types (like channel_request) before authentication was complete - in clear violation of the SSH protocol (RFC 4252 Section 6). This make it possible for a unauthenticated attacker to:

  1. Open a TCP connection to the SSH server.

  2. Send valid SSH_MSG_KEXINIT, then:

  3. Skip authentication completely, and

  4. Send a channel_request with exec and payload like:

file:write_file(\"/payload.txt\", <<\"pwned\">>).

Which would eventually be passed into Erlang's evaluation path - resulting in unauthenticated remote code execution.


Setup dev environment

Files needed, ssh_server.erl and Dockerfile:

Use the Dockerfile to setup a Docker container running the vulnerable Erlang OTP version 26.2.5.10. Note this will take a few minutes so be patient.


POC || GTFO

Exploit script can be found on my git.

Last updated

Was this helpful?