Il team di developer OpenSSL ha annunciato il rilascio di nuove security patch dedicate alla risoluzione di una vulnerabilità che consentiva attacchi DoS (denial-of-service) classificata come CVE-2022-0778. Tale bug è stato segnalato nei giorni scorsi dal vulnerability researcher Tavis Ormandy, che svolge il ruolo di Information Security Engineer per Google. OpenSSL è sostanzialmente un'implementazione open source dei protocolli SSL (Secure Sockets Layer) e TLS (Transport Layer Security). La falla era presente nelle versioni 1.0.2, 1.1.1 e 3.0 di questo protocollo crittografico. Sostanzialmente si trattava di un exploit che in determinati contesti permetteva di eseguire un attacco DoS verso un componente della libreria che analizza i certificati proveniente da fonti esterne.
Tramite OpenSSL ed il sistema dei certificati è possibile assicurarsi che il sito web che stiamo visitando sia lecito e che tratti i nostri dati in modo sicuro. In buona sostanza OpenSSL permette una comunicazione sicura tra il sito web e l'utente sfruttando le normali reti TCP/IP. Tale protocollo dunque fornisce tutta una serie di elementi, come ad esempio l'autenticazione, l'integrità e la confidenzialità dei dati, che permettono ai servizi internet di operare in sicurezza. Per fare un esempio, i servizi di home banking possono garantire la riservatezza delle credenziali dei correntisti anche grazie ai servici di crittografia offerti da OpenSSL.
Secondo il report pubblicato dal Security Engineer Tavis Ormandy il bug corretto con queste ultime patch era contenuto all'interno della funzione di OpenSSL chiamata "BN_mod_sqrt()". L'exploit mirava a generare un loop all'interno di questa componente portando dunque al blocco di OpenSSL. Come spiegato dal team di coder OpenSSL la funzionalità "BN_mod_sqrt()" viene utilizzata per eseguire il parsing dei certificati che contengono chiavi pubbliche a curva ellittica, sia in forma compressa che esplicita. Tramite l'exploit era possibile eseguire il trigger di un loop infinito sfruttando un certificato, generato ex novo, contenente dei parametri invalidi.