Er is een kwetsbaarheid ontdekt in de telnetd-server van de GNU InetUtils-suite. Deze kwetsbaarheid maakt het mogelijk om verbinding te maken als elke gebruiker, inclusief root, zonder wachtwoordverificatie. Er is nog geen CVE-identificatiecode toegekend. De kwetsbaarheid is aanwezig sinds InetUtils versie 1.9.3 (2015) en is nog steeds niet verholpen in de huidige release 2.7.0. Een oplossing is beschikbaar in patches (1, 2).
Het probleem wordt veroorzaakt doordat het telnetd-proces, om het wachtwoord te controleren, het hulpprogramma "/usr/bin/login" aanroept en daarbij de gebruikersnaam doorgeeft die de client heeft opgegeven bij het verbinden. serverHet hulpprogramma "login" ondersteunt de optie "-f", waarmee inloggen zonder authenticatie mogelijk is (deze optie is bedoeld voor gebruik wanneer de gebruiker al is geauthenticeerd). Door de optie "-f" in de gebruikersnaam te vervangen, kunt u dus inloggen zonder wachtwoordverificatie.
Met een normale verbinding kun je geen gebruikersnaam zoals "-f root" gebruiken, maar Telnet heeft een automatische verbindingsmodus die wordt geactiveerd met de optie "-a". In deze modus wordt de gebruikersnaam niet van de commandoregel gehaald, maar doorgegeven via de omgevingsvariabele USER. Wanneer het inlogprogramma wordt aangeroepen, wordt de waarde van deze omgevingsvariabele gebruikt zonder extra controle en zonder speciale tekens te escapen. Om verbinding te maken als root-gebruiker, hoef je dus alleen de omgevingsvariabele USER in te stellen op "-f root" en verbinding te maken met de Telnet-server met de optie "-a": $ USER='-f root' telnet -a server_name
De wijziging die de kwetsbaarheid introduceerde, werd in maart 2015 aan de telnetd-code toegevoegd en verhielp een probleem waardoor de gebruikersnaam in de automatische inlogmodus niet kon worden bepaald zonder Kerberos-authenticatie. Als oplossing werd ondersteuning toegevoegd voor het doorgeven van de gebruikersnaam voor de automatische inlogmodus via een omgevingsvariabele, maar een validatiecontrole voor de gebruikersnaam uit de omgevingsvariabele werd vergeten.
Bron: opennet.ru
