Quando si parla di “vulnerabilità giurassiche“, la mente corre subito ai tempi dei primi grandi exploit, ma se il discorso cade su Telnet, è difficile trattenere un sorriso, quasi si trattasse di un reperto archeologico innocuo.
Eppure, la recente scoperta del ricercatore Justin Schwartz ci ricorda che in informatica nulla è mai davvero sepolto: un “fossile” del 1999 è tornato a galla, dimostrando che anche i protocolli più obsoleti possono nascondere insidie letali per i server moderni.
Una vulnerabilità risalente alla fine degli anni ’90 è tornata inaspettatamente, consentendo l’accesso root completo a un server senza autenticazione. La segnalazione è stata fatta dal ricercatore di sicurezza informatica Justin Schwartz, che ha analizzato il problema in telnetd, il demone per il protocollo Telnet, ormai obsoleto ma ancora in uso.
Secondo Schwartz , si tratta di una vera e propria “rinascita” della vulnerabilità CVE-1999-0073, una vulnerabilità ben nota che molti consideravano da tempo un capitolo chiuso della storia. Tuttavia, le implementazioni moderne hanno scoperto un meccanismo simile che consente di bypassare l’autenticazione e di ottenere l’escalation dei privilegi.
Il problema risiede nel modo in cui telnetd avvia il processo /bin/login in un contesto root-to-root.
In questa modalità, il kernel imposta il flag AT_SECURE a zero. Ciò significa che il linker dinamico non entra in modalità di esecuzione protetta. Di conseguenza, la responsabilità della cancellazione delle variabili d’ambiente ricade su telnetd stesso.
È qui che, secondo il ricercatore, tutto va storto.
Se il demone non filtra correttamente le variabili d’ambiente, un aggressore può falsificarle e forzare il sistema a caricare una libreria dannosa (oggetto condiviso). Schwartz ha dimostrato una tecnica diprivilege escalation che crea una copia di /bin/ sh con privilegi SUID/SGID.
Questo garantisce di fatto il controllo completo sul sistema. Ma c’è anche un punto chiave e allarmante in tutto questo: non è richiesta l’autenticazione Telnet per lo sfruttamento.
L’escalation dei privilegi avviene senza dover effettuare l’accesso. Schwartz ritiene che il problema derivi da un approccio consolidato al filtraggio e all’uso di blacklist di variabili. Questo metodo, a suo avviso, si è dimostrato inaffidabile e ha lasciato lacune per quasi 27 anni.
Come soluzione, propone di passare a un modello a whitelist, come quello implementato in OpenSSH, che consente un insieme strettamente limitato di variabili sicure.
Schwartz suggerisce inoltre di unire il problema in un unico CVE, denominato “Sanificazione dell’ambiente non corretta in Telnetd”, per coprire sia i vecchi vettori sia il nuovo scenario del linker dinamico.
Tuttavia, il ricercatore non ha pubblicato il codice funzionante dell’exploit, per non provocare un’ondata di attacchi informatici.