Sono disponibili aggiornamenti correttivi per la libreria crittografica OpenSSL 3.0.1 e 1.1.1m. Nella versione 3.0.1 è stata risolta una vulnerabilità (CVE-2021-4044) e sono state corrette circa dieci anomalie in entrambe le versioni.
La vulnerabilità è presente nell'implementazione dei client SSL/TLS ed è legata al fatto che la libreria libssl gestisce in modo errato i valori negativi dei codici di errore restituiti dalla funzione X509_verify_cert(), chiamata per verificare il certificato fornito dal server al client. I codici negativi vengono restituiti in caso di errori interni, come ad esempio quando non è possibile allocare memoria per il buffer. In caso di errore simile, la successiva chiamata a funzioni di input/output, come SSL_connect() e SSL_do_handshake(), comporterà un completamento non riuscito e un codice di errore SSL_ERROR_WANT_RETRY_VERIFY, che dovrebbe essere restituito solo se l'applicazione aveva precedentemente chiamato SSL_CTX_set_cert_verify_callback().
Poiché la maggior parte delle applicazioni non chiama SSL_CTX_set_cert_verify_callback(), l'errore SSL_ERROR_WANT_RETRY_VERIFY potrebbe essere interpretato in modo errato, causando un crash, un loop o altre reazioni errate. Il problema è particolarmente pericoloso se combinato con un altro errore in OpenSSL 3.0, che porta a un errore interno durante l'elaborazione in X509_verify_cert() dei certificati privi dell'estensione 'Subject Alternative Name', ma con riferimenti ai nomi nelle restrizioni d'uso. In questo caso, un attacco potrebbe causare anomalie nell'elaborazione dei certificati e nella creazione di sessioni TLS, dipendenti dalle applicazioni.
Fonte: opennet.ru
