În serverul telnetd din setul GNU InetUtils a fost descoperită o vulnerabilitate care permite conectarea sub orice utilizator, inclusiv utilizatorul root, fără verificarea parolei. Identificatorul CVE nu a fost încă atribuit. Această vulnerabilitate apare începând cu versiunea InetUtils 1.9.3 (anul 2015) și rămâne necorespunzătoare în versiunea actuală 2.7.0. Corecția este disponibilă sub formă de patch-uri (1, 2).
Problema este cauzată de faptul că pentru verificarea parolei, procesul telnetd apelează utilitarul "/usr/bin/login", trecând ca argument numele utilizatorului specificat de client la conectare la server. Utilitarul „login” suportă opțiunea „-f”, care permite autentificarea fără a necesita o autentificare efectivă (se consideră că această opțiune este folosită atunci când utilizatorul a fost deja verificat). Astfel, dacă se reușește să se substituie opțiunea „-f” în numele de utilizator, se poate conecta fără verificarea parolei.
La o conectare obișnuită, utilizarea unui nume de utilizator de tip „-f root” nu va funcționa, dar în telnet există un mod de conectare automată, activat prin opțiunea „-a”. În acest mod, numele utilizatorului nu este preluat din linia de comandă, ci este transmis printr-o variabilă de mediu USER. La apelarea utilitarului login, valoarea acestei variabile de mediu era substituită fără verificări suplimentare și fără a scăpa caracterele speciale. Astfel, pentru a te conecta ca utilizator root, este suficient să setezi în variabila de mediu USER valoarea „-f root” și să te conectezi la serverul telnet, specificând opțiunea „-a”: $ USER=‘-f root’ telnet -a numele_serverului
Modificarea care a dus la vulnerabilitate a fost adăugată în codul telnetd în martie 2015 și a fost legată de rezolvarea unei probleme care nu permitea determinarea numelui de utilizator în modul autologin fără autentificare Kerberos. Ca soluție, a fost adăugat suportul pentru transmiterea numelui de utilizator pentru modul autologin printr-o variabilă de mediu, dar verificarea corectitudinii numelui de utilizator din variabila de mediu a fost uitată.
Sursa: opennet.ro
