
GNU-InetUtils-telnetd-Authentication-Bypass-Vulnerability
CVE-2026–24061 ist eine kritische Schwachstelle im telnetd-Dienst von GNU InetUtils
CVE-ID : CVE-2026–24061
Schweregrad : Kritisch (CVSS 9.8)
Angriffsvektor : Netzwerk
Erforderliche Authentifizierung : Keine
Auswirkung : Vollständige Systemkompromittierung (Root-Zugriff)
Die Schwachstelle resultiert aus einer unsachgemäßen Behandlung der USER-Umgebungsvariablen während des Telnet-Sitzungsaufbaus. Dieser Wert wird direkt in die Argumentliste von /usr/bin/login übernommen, ohne jegliche Bereinigung oder Validierung. Infolgedessen kann ein entfernter Angreifer diese Eingabe manipulieren, um Kommandozeilenoptionen einzuschleusen, die Authentifizierung zu umgehen und sofort eine Root-Shell zu erhalten.
Der folgende Ausschnitt aus telnetd/utility_file.c zeigt, wie benutzergelieferte Werte direkt ohne Validierung verwendet wurden:
case 'h':
return xstrdup (remote_hostname);
case 'l':
return xstrdup (local_hostname);
case 'L':
return xstrdup (line);
case 't':
q = strchr (line + 1, '/');
if (q)
q++;
else
q = line;
return xstrdup (q);
case 'T':
return terminaltype ? xstrdup (terminaltype) : NULL;
case 'u':
return user_name ? xstrdup (user_name) : NULL;
case 'U':
return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup ("");
Problem :
Benutzergesteuerte Werte USER, terminaltype und line werden ohne Validierung verwendet. Sie werden direkt in interne Strukturen kopiert.
Da diese Werte von einem entfernten Client über das Telnet-Protokoll beeinflusst werden können, entsteht hier ein kritischer Injektionspunkt.
Angriffsablauf :
Proof of Concept
Ein minimaler Proof of Concept zeigt, wie die Schwachstelle ausgenutzt werden kann:
USER='-f root' telnet -a <ipaddr>
telnet -l -'f root' ip_addr
Dieser Befehl injiziert während des Telnet-Handshakes einen bösartigen USER-Wert, der auf anfälligen Systemen zu unbefugtem Root-Zugriff führen kann.
Ich habe ein Labor mit CVE-2026–24061 durchgeführt, bei dem ich die Schwachstelle ausgenutzt habe, indem ich telnet -l '-f root' 176.16.2.153 verwendet habe, um bösartige Argumente zu injizieren und einen Authentifizierungsbypass zu erreichen. Letztendlich habe ich Root-Zugriff auf das Zielsystem erhalten.

Was intern passiert :
Dadurch konnte ich bösartige Argumente injizieren, die Authentifizierung umgehen und Root-Zugriff auf das Zielsystem erlangen.
Technische Zusammenfassung
Der Fehler liegt darin, wie telnetd die Telnet-Option NEW_ENVIRON behandelt. Sie erlaubt es einem Client, Umgebungsvariablen zu definieren, die an die /usr/bin/login-Binärdatei des Systems übergeben werden. Da telnetd die USER-Variable nicht bereinigt, kann ein Angreifer das Flag -f (Force-Login) injizieren, das dem Login-Dienstprogramm mitteilt, die Passwortüberprüfung zu überspringen und sofort eine Sitzung für den angegebenen Benutzer (normalerweise root) zu gewähren.