
Test
Dieses Dokument stellt die Untersuchung der Schwachstelle CVE-2025-32433 dar, die die Implementierung des integrierten SSH-Servers in der Plattform Erlang/OTP betrifft.
Diese Schwachstelle ermöglicht die Remote-Ausführung von beliebigem Code (Remote Code Execution, RCE) ohne Authentifizierung und betrifft mehrere Erlang/OTP-Zweige vor der Veröffentlichung von Patches:
Erlang/OTP wird häufig als Grundlage für skalierbare verteilte Systeme verwendet und ist Bestandteil des Stacks vieler bekannter Projekte (z. B. Messenger, Nachrichtenbroker, hochbelastete Webdienste).
Das Vorhandensein einer kritischen RCE-Sicherheitslücke in der SSH-Basisschicht gefährdet die Infrastruktur, die Erlang/OTP als Server oder Komponente mit offenem SSH-Zugang verwendet.
Schrittweise Untersuchung der Schwachstelle und Demonstration des vollständigen Forschungszyklus:
Sammlung und Strukturierung von Materialien:
Öffentlich verfügbare Daten zu CVE-2025-32433 finden und systematisieren, Wesen und mögliche Auswirkungen beschreiben.
Bestimmung von CPE- und Konfigurationsbedingungen:
Liste der CPE- und Konfigurationsbedingungen angeben, für die die Schwachstelle relevant ist.
Entwicklung von PoC/Exploit:
Einen funktionsfähigen Prototypen erstellen und in einer Testumgebung demonstrieren.
Methoden für sichere Massenprüfungen:
Drei Möglichkeiten zur Überprüfung anfälliger Hosts beschreiben:
Diese Untersuchung dient ausschließlich Bildungs- und ethischen Zwecken und wurde nur in einer kontrollierten Testumgebung durchgeführt.
Der Autor übernimmt keine Verantwortung für eine missbräuchliche Verwendung der dargestellten Informationen.
Verwenden Sie diese Informationen nur zum Lernen und zur Verbesserung der Sicherheit Ihrer Systeme.
Erlang ist eine Programmiersprache, die für den Aufbau hochparalleler und fehlertoleranter Systeme entwickelt wurde.
Ihre Plattform Open Telecom Platform (OTP) wird seit vielen Jahren in kritischen Infrastrukturen eingesetzt – von der Telekommunikation bis zum Finanzsektor.
In OT-Umgebungen (Operationstechnologie) und 5G-Netzwerken wird Erlang/OTP für seine Skalierbarkeit und die Fähigkeit geschätzt, Systeme mit minimalen Ausfallzeiten kontinuierlich zu betreiben.
Für die Fernverwaltung nutzen solche Netzwerke häufig die integrierte SSH-Implementierung in Erlang/OTP.
Genau das macht die Schwachstelle CVE-2025-32433 für solche Umgebungen besonders gefährlich.
Die sichere Interaktion in Erlang/OTP wird durch eine eigene SSH-Implementierung gewährleistet, die:
Die Sicherheitslücke in dieser Implementierung ermöglicht es einem Angreifer mit Netzwerkzugriff, beliebigen Code ohne Authentifizierung auszuführen, was eine direkte Bedrohung für anfällige Assets darstellt.
Nach globalen Internet-Scans (Cortex Xpanse, April 2025) sind anfällige Erlang/OTP SSH-Dienste im Internet weit verbreitet und laufen nicht nur auf Standard-Ports, sondern z. B. auch auf TCP-Port 2222.
Dieser Port wird häufig von veralteten Komponenten der industriellen Automatisierung und dem EtherNet/IP-Protokoll zur impliziten Nachrichtenübertragung verwendet, was die mögliche Angriffsvektoren erweitert.
Die Schwachstelle betrifft SSH-Versionen, die in Erlang/OTP-Releases enthalten sind.
Die Verbreitung anfälliger Dienste auf ports, die für verschiedene Branchen typisch sind, bildet eine erhebliche globale Angriffsfläche.
Telemetriedaten zeigten, dass über 85 % der Ausnutzungsversuche auf Firewalls im OT-Segment der folgenden Bereiche erfasst wurden:
Gleichzeitig wurden trotz hoher Abhängigkeit von OT in den Sektoren:
keine Faktoren identifiziert, die eine aktive Verbreitung dieser speziellen Bedrohung begünstigen würden.
CVE-2025-32433 ist in der NVD-Datenbank mit den folgenden typischen CPEs (Common Platform Enumeration) registriert:
cpe:2.3:a:erlang:otp:25:*:*:*:*:*:*:*cpe:2.3:a:erlang:otp:26:*:*:*:*:*:*:*cpe:2.3:a:erlang:otp:27:*:*:*:*:*:*:*Als anfällig gelten Minor-Releases unterhalb der folgenden Patch-Versionen:
- 25.x – bis einschließlich 25.3.2.20
- 26.x – bis einschließlich 26.2.5.11
- 27.x – bis einschließlich 27.3.3
ssh:daemon/2) ausgeführt werden, nicht ein externer openssh.22 oder benutzerdefiniert, z. B. 2222) muss für Remote-Verbindungen aus dem Netzwerk des Angreifers erreichbar sein.ssh:daemon/2.⚠️ Wenn Erlang/OTP nur als Client-Bibliothek ohne laufenden SSH-Server verwendet wird oder wenn der Server in einem isolierten Netzwerk abgeschottet ist, ist die Schwachstelle nicht erreichbar.
Die Schwachstelle entsteht dadurch, dass der integrierte SSH-Server Erlang/OTP den Vorauthentifizierungsprozess falsch behandelt.
Eine Schlüsselrolle spielen zwei Arten von Nachrichten des Verbindungsprotokolls – SSH_MSG_CHANNEL_OPEN und SSH_MSG_CHANNEL_REQUEST.
Gemäß dem Standard RFC 4254 sollten solche Nachrichten nur nach erfolgreicher Authentifizierung des Benutzers akzeptiert werden.
Jeder Versuch, sie früher zu senden, sollte sofort zur Trennung der Verbindung führen.
Im Fall von CVE-2025-32433 erzwingt der SSH-Daemon diese Regel nicht, sodass ein Angreifer einen Sitzungskanal öffnen und eine exec-Anfrage mit einem beliebigen Befehl ohne Angabe gültiger Anmeldeinformationen senden kann.
Mit anderen Worten, dies führt zu einer nicht authentifizierten Remote-Code-Ausführung (RCE) – der Angreifer kann die Kontrolle über den Server übernehmen, ohne Benutzername, Passwort oder Schlüssel zu kennen.

Das SSH Connection-Protokoll arbeitet über der Transport- und Authentifizierungsschicht von SSH.
Es bietet Funktionen für interaktives Einloggen, entfernte Befehlsausführung und Portweiterleitung.
In der anfälligen SSH-Implementierung in Erlang/OTP werden genau diese beiden Nachrichten – SSH_MSG_CHANNEL_OPEN und SSH_MSG_CHANNEL_REQUEST, die zum Initiieren eines Kanals und zum Anfordern von Befehlen erforderlich sind, zum Angriffspunkt:
Ein Angreifer kann speziell gestalteten Traffic senden, der das System dazu bringt, beliebigen Code vor der Authentifizierung auszuführen.

Im Rahmen der Forschung wurde ein funktionsfähiger Proof-of-Concept für CVE-2025-32433 erstellt.
CVE-2025-32433.py – Python-Skript, das manuell SSH-Pakete erstellt
(SSH_MSG_KEXINIT, SSH_MSG_CHANNEL_OPEN, SSH_MSG_CHANNEL_REQUEST) und
diese vor der Authentifizierung sendet.
Dies ermöglicht es, in anfälligen Erlang/OTP-Versionen einen beliebigen Befehl
auf der Serverseite auszuführen – im PoC wird eine Datei /lab.txt mit dem Text cyberok erstellt.
ssh_server.erl – Minimales Erlang-Modul, das den integrierten
SSH-Daemon von OTP auf Port 2222 startet. Es dient nur der Demonstration
und wird innerhalb eines Docker-Containers ausgeführt.
Dockerfile – Bauanleitung für den Container, der automatisch die
angegebene Erlang/OTP-Version kompiliert und einen Test-SSH-Server startet.
⚠️ Dieser PoC ist ausschließlich für lokale Tests und Bildungszwecke bestimmt. Nicht in produktiven oder öffentlich zugänglichen Netzwerken verwenden.
Image erstellen:
git clone https://github.com/iteride/CVE-2025-32433.git && cd CVE-2025-32433/POC/ && docker build -t cve-ssh .

Image starten
docker run -d --name cve-ssh -p 2222:2222 cve-ssh
PoC-Demonstration

Das passive Template sucht nach indirekten Anzeichen der Schwachstelle, ohne echte Angriffsaktionen durchzuführen.
Es analysiert nur die „Oberflächeninformationen“, die der Dienst selbst preisgibt:
Wird eine anfällige Version gefunden (z. B. OTP 25.3.2.19 oder 26.2.5.10), markiert nuclei den Host als potenziell anfällig.
⚠️ Dieser Ansatz ist sicher: Es werden keine bösartigen Pakete oder Ausnutzungsversuche durchgeführt.
nuclei -u 127.0.0.1:2222 -t erlang-passive.yaml
Das aktive Template führt eine kontrollierte Angriffssimulation durch:
Es sendet speziell gestaltete SSH-Pakete vor der Authentifizierung und prüft, ob die Schwachstelle ausgelöst wird.
Zur Dokumentation der Ausnutzung wird Interactsh verwendet – wenn der entfernte Server die schädliche Anfrage ausgeführt hat, erscheint ein DNS-Callback im Interactsh-Panel.
✅ Dieser Test bestätigt die tatsächliche Möglichkeit einer Remote-Code-Ausführung (RCE),
wird aber nur in einer isolierten Testumgebung durchgeführt.
nuclei -u 127.0.0.1:2222 -t erlang-active.yaml -code
Unterschiede zum nuclei-Template:
Skript ausführen
⚠️ Stellen Sie vor dem Start sicher, dass interactsh-client installiert und ausgeführt wird.
python3 babyfon.py -f targets.txt -d your.interactsh_domain

Nach dem Start überprüfen wir die DNS-Interaktionen im interactsh-client. (Im Beispiel werden zwei Ziele gescannt: eines ist anfällig, das andere bereits gepatcht)



Ergebnis aus den Tests: