Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-24061 — Proof-of-concept exploit per CVE-2026-24061, un bypass dell'autenticazione di telnetd tramite iniezione di argomenti nella variabile d'ambiente USER, che consente l'accesso non autenticato a una shell di root. | Kitploit
Strumenti/GitHubGitHub/przemytn/cve-2026-24061
Analisi delle VulnerabilitàExploitSicurezza WebSicurezza di RetePenetration TestingAutenticazione
GitHubprzemytn/cve-2026-24061

CVE-2026-24061

Proof-of-concept exploit per CVE-2026-24061, un bypass dell'autenticazione di telnetd tramite iniezione di argomenti nella variabile d'ambiente USER, che consente l'accesso non autenticato a una shell di root.

Vedi Repository
5 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-24061 - bypass dell'autenticazione in telnetd

di cosa si tratta

Iniezione di argomenti in telnetd di GNU InetUtils. Versioni dalla 1.9.3 alla 2.7. CVSS 9.8. Nella CISA KEV dal 26.01.2026, quindi attivamente sfruttata in natura.

Tutto il trucco sta nel fatto che telnetd prende il valore della variabile d'ambiente USER dal client tramite NEW-ENVIRON (RFC 1572) e lo incolla senza alcuna validazione direttamente nella chiamata a login(1). Se il client invia USER="-f root", telnetd eseguirà:

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

Il flag -f in login significa "autentica questo utente senza password". Shell di root, zero autenticazione.

meccanismo

In telnetd/telnetd.c c'è il template della chiamata a login:

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

%u è l'utente dall'autenticazione telnet (attendibile). %U è il valore grezzo della variabile d'ambiente USER dal client (non attendibile). Quando l'autenticazione non è attiva, viene usato %U.

L'espansione delle variabili si trova in telnetd/utility.c, funzione _var_short_name:

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

Zero filtri. Qualunque cosa il client invii in USER finisce direttamente nella riga di comando di login. Non funziona solo -f root, teoricamente si può iniettare qualsiasi argomento che login accetta.

Il bug è stato introdotto in un commit upstream di safe-guard del 2015-03-19 (fa3245ac). Ironia della sorte, quel commit doveva migliorare la gestione della variabile USER. Debian aveva una patch per questo nel 2019 (0028-telnetd-Scrub-USER-from-environment.patch), ma con il fix di CVE-2020-10188 in Debian 10 la patch è andata persa e il bug è tornato. Quindi sono vulnerabili anche Debian 10+, Ubuntu e derivate.

come funziona il poc

main.py è un client telnet minimale che:

  1. si connette sulla porta 23
  2. nella negoziazione accetta NEW-ENVIRON, per il resto delle opzioni risponde WONT
  3. alla richiesta SEND risponde IAC SB NEW_ENVIRON IS VAR "USER" VALUE "-f root" IAC SE
  4. telnetd esegue login -f root, ottieni una shell
  5. poi funziona come una sessione interattiva, filtra IAC e sequenze di escape ANSI dall'output
root@kitploit:~
client                                server
  |--- 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:~# ------------------|

utilizzo

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

Ctrl+C termina la sessione.

cosa non fare

Non provare su sistemi che non hanno inetutils-telnetd. Il pacchetto telnetd di netkit è un codice diverso, non è vulnerabile a questo specifico bug. Se ti connetti e ricevi un normale prompt di login invece di una shell, o il server ha già la patch, oppure non è un telnetd di inetutils.

Non modificare il payload in -f <altro_utente> aspettandoti che funzioni su ogni sistema. login(1) di alcune distribuzioni ha restrizioni aggiuntive su -f. Su Debian/Ubuntu standard -f root funziona senza problemi.

versioni interessate

softwareversioni
GNU InetUtils1.9.3 - 2.7
Debian 10+inetutils-telnetd (fino alla patch)
Debian 11corretto in 2:2.0-1+deb11u3
Ubuntuinetutils-telnetd (fino alla patch)

patch

Il fix ufficiale aggiunge una funzione sanitize() che rifiuta i valori che iniziano con - o che contengono metacaratteri di shell. Applicata a tutte le variabili nell'espansione, non solo USER.

root@kitploit:~
static char *
sanitize (const char *u)
{
  if (u && *u != '-' && !u[strcspn(u, "\t\n !\"#$&'()*;<=>?[\\^`{|}~")])
    return u;
  else
    return "";
}
  • fd702c0 - patch per USER
  • ccba9f7 - sanificazione di tutte le variabili
Scarica lo strumento