Eine maximal kritische Sicherheitslücke in der SSH‑Implementierung von Erlang/OTP (CVE‑2025‑32433) ermöglicht es Angreifern, ohne Authentifizierung beliebigen Code auf betroffenen Systemen auszuführen. Betroffen sind alle Installationen mit OTP‑Versionen bis einschließlich 27.3.2, 26.2.5.10 und 25.3.2.19. Durch gezielt manipulierte SSH‑Nachrichten kann ein Angreifer über das Netzwerk volle Kontrolle über den Server erlangen, sensible Daten kompromittieren oder den Dienst lahmlegen. Nutzer sollten umgehend auf die gepatchten Versionen 27.3.3, 26.2.5.11 bzw. 25.3.2.20 aktualisieren. Bis zum Update empfiehlt sich, den SSH‑Dienst abzuschalten oder den Zugriff per Firewall zu beschränken. Entdeckt wurde der Fehler von Fabian Bäumer, Marcel Maehren, Marcus Brinkmann und Jörg Schwenk von der Ruhr‑Universität Bochum.
Exploit
Der Exploit nutzt aus, dass der Erlang/OTP‑SSH‑Server eingehende SSH_MSG_CHANNEL_REQUEST‑Nachrichten bereits vor einer erfolgreichen Authentifizierung verarbeitet. Das Python‑Skript stellt dazu eine reguläre SSH‑Verbindung her und fälscht im Anschluss Schritt für Schritt die notwendigen Protokollnachrichten:
- Banner‑Austausch: Zunächst sendet das Skript eine typischen SSH‑Client‑Banner („SSH‑2.0‑OpenSSH_8.9“) und liest die Server‑Antwort, um die Verbindung als SSH‑Client zu etablieren.
- KEXINIT‑Nachricht: Mit
build_kexinit()
wird eine minimal gültige SSH_MSG_KEXINIT‑Nachricht erzeugt, die die vom Server unterstützten Verschlüsselungs‑ und Kompressionsalgorithmen imitiert. Diese Nachricht wird mitpad_packet()
passend auf die Blockgröße des SSH‑Rahmens aufgefüllt. - Channel Open: Anschließend wird ein SSH_MSG_CHANNEL_OPEN für einen neuen Session‑Kanal generiert (
build_channel_open()
) und ebenfalls korrekt gepackt. Damit signalisiert der Client, einen neuen Logikkanal für Kommando‑Requests öffnen zu wollen. - Pre‑Auth Channel Request: Hier greift die Lücke: Noch bevor eine Nutzer‑Authentifizierung erfolgt, sendet das Skript einen SSH_MSG_CHANNEL_REQUEST mit dem Request‑Typ „exec“ und als Payload einen Erlang‑Kommando‑Term, z. B. erlangKopieren
file:write_file("/lab.txt", <<"pwned">>).
Der Server interpretiert dies als legitimes „execute this command“ und führt ihn im Kontext des SSH‑Handlers aus. - Ergebnis: Wenn der Server nicht gepatcht ist, wird die angeforderte Datei
/lab.txt
mit dem Inhalt „pwned“ angelegt – ein klarer Beleg für erfolgreiche, unautorisierte Code‑Ausführung.
Wesentlich verantwortlich für die Ausnutzbarkeit ist, dass der OTP‑SSH‑Server die Konsistenz und Authentifizierung von Channel‑Requests vor Ausführung nicht ausreichend prüft. Durch sorgfältiges Nachbauen der SSH‑Rahmenschicht (Längenfeld, Padding, Nachrichtentypen) kann der Exploit beliebige Erlang‑Ausdrücke hineinreichen und so Systemaufrufe oder Dateioperationen auslösen.
Professionelle Hilfe erwünscht?
Sentiguard ist spezialisiert auf Notfallhilfe nach Cyberattacken, IT Sicherheitsbeauftragte und IT Sicherheitskonzepte nach BSI Standard. Haben Sie Fragen und wünschen Sie unverbindliche Beratung, dann melden Sie sich gerne bei uns: