Nel panorama attuale della cybersecurity, siamo abituati a vulnerabilità sofisticate che coinvolgono complessi schemi di heap grooming o vulnerabilità logic-heavy in moderni microservizi. Tuttavia, la recente disclosure della CVE-2026-24061 ci riporta alle basi: una Argument Injection triviale quanto devastante che affligge il demone telnetd della suite GNU InetUtils.
Questa vulnerabilità, con uno score CVSS di 9.8 (Critical), permette a un attaccante remoto non autenticato di ottenere una shell root con un singolo comando. Nonostante Telnet sia considerato un protocollo obsoleto, la sua massiccia presenza in sistemi legacy, infrastrutture OT (Operational Technology) e dispositivi IoT rende questo exploit una minaccia di primo piano.
Il cuore della vulnerabilità risiede nel modo in che cui telnetd invoca il processo di login del sistema. Quando una sessione Telnet viene stabilita, il demone deve passare le informazioni dell’utente al binario /bin/login.
Nell’implementazione di GNU InetUtils (versioni dalla 1.9.3 fino alla 2.7), la funzione start_login utilizza internamente una routine chiamata expand_line per costruire la stringa di comando. Il template utilizzato è generalmente simile a: login -p -h %h %U
In questo contesto:
%h viene sostituito dall’hostname/IP del client.%U viene sostituito dal valore della variabile d’ambiente USER.Il problema tecnico critico è l’assenza di sanitizzazione del valore passato tramite %U. Poiché il protocollo Telnet permette la negoziazione di variabili d’ambiente durante l’handshake iniziale (tramite l’opzione NEW_ENVIRON, definita nella RFC 1572), un client malevolo può iniettare parametri arbitrari nel comando di login.
L’attaccante può fornire come variabile USER la stringa -f root. Quando telnetd espande la riga di comando, il risultato finale eseguito dal sistema (con privilegi di root, dato che il demone gira come tale) sarà:
/bin/login -p -h <attaccante_ip> -f root
Perché questo è fatale? La flag -f (force) del comando login è progettata per saltare la fase di autenticazione quando l’utente è già stato validato da un altro servizio (comportamento tipico in alcuni contesti di login locale o pre-autenticato). Invocando login -f root, il sistema assume che l’identità sia già verificata e concede immediatamente una shell root senza richiedere alcuna password.
L’exploit può essere lanciato con estrema semplicità. Utilizzando un client telnet standard che supporti la definizione di variabili d’ambiente, il comando sarebbe:
USER="-f root" telnet -a <target_ip>
A livello di protocollo, l’attaccante invia una sequenza di negoziazione Telnet specifica:
IAC WILL NEW_ENVIRONIAC SB NEW_ENVIRON SEND VAR "USER" IAC SEIAC SB NEW_ENVIRON IS VAR "USER" VALUE "-f root" IAC SEOltre alla semplice injection di -f root, i ricercatori di SafeBreach hanno evidenziato che l’attaccante ha un controllo quasi totale sugli argomenti passati a login. Questo permette non solo il bypass dell’autenticazione, ma potenzialmente l’alterazione di altre variabili d’ambiente (come LD_PRELOAD o PATH) se il sistema non implementa ulteriori protezioni a livello di kernel o di librerie di sistema.
Sebbene molti pensino che Telnet sia “morto”, i dati di scansione globale (Shodan/Censys) mostrano ancora centinaia di migliaia di dispositivi esposti.
USER, bloccando stringhe che iniziano con il carattere dash (-).telnetd in favore di SSH (OpenSSH)./bin/login con la flag -f non originate da processi locali fidati.La CVE-2026-24061 è un monito brutale: la complessità non è un prerequisito per la criticità. Una singola riga di codice scritta nel 2015, che omette la sanificazione di un input, può annullare decenni di evoluzione nella sicurezza perimetrale. Per gli esperti del settore, la priorità è ora una scansione capillare delle reti interne, dove spesso Telnet sopravvive “sotto il radar” dei controlli di sicurezza standard.