CVE-2020-13777: vulnerabilità di GnuTLS trovata nascosta per 2 anni

La vulnerabilità in GnuTLS definita come CVE-2020-13777 è una libreria open source ampiamente adottata che utilizza TLS (Transport Layer Security)

Secondo i rapporti, la vulnerabilità risulta essere presente in biblioteca per circa 2 anni, rendendo le sessioni riprese TLS 1.3 aperte per l’attacco. La vulnerabilità è stata rilevata in GnuTLS 3.6.4 a settembre 2018 ed è stata risolta in seguito nella versione più recente di GnuTLS 3.6.14 il 3 giugno 2020.

CVE-2020-13777 Spiegazione della vulnerabilità

Secondo quanto riferito, questo bug ha effettivamente consentito ai server GnuTLS di utilizzare i ticket di sessione emessi durante la precedente sessione TLS 1.3 protetta, senza utilizzare la funzione che crea chiavi segrete:

gnutls_session_ticket_key_generate ()

Sfruttando questa vulnerabilità, gli aggressori potrebbero eludere l’autenticazione in TLS 1.3, recuperando quindi le conversazioni precedenti in TLS 1.2.

Secondo quanto afferma il ricercatore di nome Airtower:

“I server GnuTLS sono in grado di utilizzare i ticket emessi l’uno dall’altro senza accedere alla chiave segreta generata da gnutls_session_ticket_key_generate (). Ciò consente a un server MITM senza credenziali valide di riprendere le sessioni con un client che per primo ha stabilito una connessione iniziale con un server con credenziali valide. Il problema si applica a TLS 1.3, quando l’utilizzo della ripresa TLS 1.2 non riesce come previsto. “

I ricercatori della sicurezza hanno notato prima questo problema con Ubuntu versione 3.6.13-2ubuntu1 e lo hanno creato con una nuova build da master definita come 52e78fle.

Alcuni ricercatori sostengono anche che GnuTLS dovrebbe essere eliminato come dipendenza, mentre molti di loro hanno espresso il loro disprezzo nei confronti della biblioteca, secondo quanto indicato da TheRegister.

Secondo il dizionario CVE di MITRE, la descrizione di CVE-2020-13777 è descritta come:

“GnuTLS 3.6.x prima del 3.6.14 utilizza una crittografia errata per crittografare un ticket di sessione (una perdita di riservatezza in TLS 1.2 e un bypass di autenticazione in TLS 1.3). La prima versione interessata è la 3.6.4 (24-09-2018) a causa di un errore in un commit 2018-09-18. Fino alla prima rotazione della chiave, il server TLS utilizza sempre dati errati al posto di una chiave di crittografia derivata da un’applicazione. “

Tuttavia, non esiste alcuna mitigazione identificata contro questa vulnerabilità, come chiarito dal consulente RedHat.