Overflow del buffer in OpenSSL sfruttato durante la verifica dei certificati X.509

È stata pubblicata una versione correttiva della libreria crittografica OpenSSL 3.0.7 che risolve due vulnerabilità. Entrambi i problemi sono causati da buffer overflow nel codice di convalida del campo e-mail nei certificati X.509 e possono potenzialmente portare all'esecuzione di codice durante l'elaborazione di un certificato appositamente strutturato. Al momento della pubblicazione del fix, gli sviluppatori di OpenSSL non avevano registrato alcuna prova della presenza di un exploit funzionante che potesse portare all’esecuzione del codice dell’aggressore.

Nonostante l'annuncio pre-rilascio della nuova versione menzionasse la presenza di un problema critico, infatti, nell'aggiornamento rilasciato lo stato della vulnerabilità è stato ridotto al livello di vulnerabilità pericolosa, ma non critica. In accordo con le regole adottate nel progetto, il livello di pericolo viene ridotto se il problema si manifesta in configurazioni atipiche o se nella pratica esiste una bassa probabilità di sfruttamento della vulnerabilità.

In questo caso, il livello di gravità è stato ridotto perché un’analisi dettagliata della vulnerabilità da parte di diverse organizzazioni ha concluso che la capacità di eseguire codice durante l’exploit è stata bloccata dai meccanismi di protezione da overflow dello stack utilizzati in molte piattaforme. Inoltre, il layout della griglia utilizzato in alcune distribuzioni Linux fa sì che i 4 byte che escono dai limiti vengano sovrapposti al buffer successivo nello stack, che non è ancora in uso. Tuttavia, è possibile che esistano piattaforme che possono essere sfruttate per eseguire codice.

Problemi identificati:

  • CVE-2022-3602 - una vulnerabilità, inizialmente presentata come critica, porta ad un overflow del buffer di 4 byte quando si controlla un campo con un indirizzo email appositamente progettato in un certificato X.509. In un client TLS la vulnerabilità può essere sfruttata quando ci si connette a un server controllato dall'aggressore. Su un server TLS, la vulnerabilità può essere sfruttata se viene utilizzata l'autenticazione client tramite certificati. In questo caso la vulnerabilità si manifesta nella fase successiva alla verifica della catena di fiducia associata al certificato, ovvero L'attacco richiede che l'autorità di certificazione verifichi il certificato dannoso dell'aggressore.
  • CVE-2022-3786 è un altro vettore per sfruttare la vulnerabilità CVE-2022-3602, identificata durante l'analisi del problema. Le differenze si riducono alla possibilità di sovraccaricare un buffer sullo stack con un numero arbitrario di byte contenenti il ​​carattere "." (vale a dire che l'aggressore non può controllare il contenuto dell'overflow e il problema può essere utilizzato solo per causare il crash dell'applicazione).

Le vulnerabilità compaiono solo nel ramo OpenSSL 3.0.x (il bug è stato introdotto nel codice di conversione Unicode (punycode) aggiunto al ramo 3.0.x). Le versioni di OpenSSL 1.1.1, così come le librerie fork OpenSSL LibreSSL e BoringSSL, non sono interessate dal problema. Allo stesso tempo è stato rilasciato l'aggiornamento OpenSSL 1.1.1s, che contiene solo correzioni di bug non legati alla sicurezza.

Il ramo OpenSSL 3.0 viene utilizzato in distribuzioni come Ubuntu 22.04, CentOS Stream 9, RHEL 9, OpenMandriva 4.2, Gentoo, Fedora 36, ​​​​Debian Testing/Unstable. Si consiglia agli utenti di questi sistemi di installare gli aggiornamenti il ​​prima possibile (Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch). In SUSE Linux Enterprise 15 SP4 e openSUSE Leap 15.4, i pacchetti con OpenSSL 3.0 sono disponibili facoltativamente, i pacchetti di sistema utilizzano il ramo 1.1.1. Debian 1, Arch Linux, Void Linux, Ubuntu 11, Slackware, ALT Linux, RHEL 20.04, OpenWrt, Alpine Linux 8 e FreeBSD rimangono sui rami OpenSSL 3.16.x.

Fonte: opennet.ru

Aggiungi un commento