Apr 17, 2024 In evidenza, News, Vulnerabilità
I mantainer di PuTTY, il client open-source di SSH e Telnet, hanno reso noto che il tool soffre di una vulnerabilità critica che consente a un attaccante di ottenere la chiave segreta dell’utente.
Il bug, tracciato come CVE-2024-31497, è causato da un’implementazione errata del protocollo ECSDA (NIST P-521) di crittografia ellittica. “Un aggressore in possesso di qualche decina di messaggi firmati e della chiave pubblica dispone di informazioni sufficienti per recuperare la chiave privata e falsificare le firme come se provenissero dall’utente, consentendogli (ad esempio) di accedere a qualsiasi server per il quale si utilizza la chiave” spiegano gli sviluppatori.
Per ottenere le firme a un attaccante basta compromettere qualsiasi server nel quale si usa la chiave per autenticazione o accedere a una copia di Pageant, ovvero l’agent di autenticazione di PuTTY, che contiene la chiave.
Gli sviluppatori spiegano che, dal momento che PuTTY è stato sviluppato su Windows prima che ci fosse un qualsiasi generatore di numeri randomici, il tool ha sempre generato le chiavi in modo deterministico. Nel dettaglio, tutti gli schemi di firma crittografica richiedono l’uso di un valore casuale chiamato “nonce” e usato solo una volta, in molti casi indicato con la lettera k. Se un attaccante riesce a indovinare il valore di k o trovare due firme generate con lo stesso k, allora può facilmente derivare la chiave privata; poiché PuTTY genera in modo deterministico k, gli utenti sono esposti all’attacco.
I mantainer del tool invitano gli utenti a revocare immediatamente qualsiasi chiave generata, rimuovere la vecchia chiave pubblica da tutti i file autorhized_keys
e generare una nuova coppia di chiavi.
La buona notizia è che l’unico tipo di chiave che soffre di questa vulnerabilità è l’ECDSA a 521 bit; chiavi di altre dimensioni o generate con altri algoritmi non sembrano essere affette dal problema.
A fronte del bug, gli sviluppatori di PuTTY hanno abbandonato il vecchio sistema di generazione di k e attualmente stanno usando la tecnica RFC 6979.
Le versioni di PuTTY colpite dalla vulnerabilità sono tutte quelle dalla 0.68 alla 0.80. Il fix è già disponibile nella versione 0.81 rilasciata pochi giorni fa.