Sunt disponibile actualizări corective pentru biblioteca criptografică OpenSSL 3.0.1 și 1.1.1m. În versiunea 3.0.1 a fost remediată o vulnerabilitate (CVE-2021-4044), iar în ambele versiuni au fost corectate aproximativ zece erori.
Vulnerabilitatea este prezentă în implementarea clienților SSL/TLS și se leagă de modul în care biblioteca libssl gestionează incorect valorile negative ale codurilor de eroare returnate de funcția X509_verify_cert(), care este apelată pentru a verifica certificatul trimis clientului de către server. Codurile negative sunt returnate în cazul unor erori interne, de exemplu, atunci când nu se poate aloca memorie pentru un buffer. În cazul returnării unei astfel de erori, apelul ulterior al funcțiilor de intrare/ieșire, cum ar fi SSL_connect() și SSL_do_handshake(), va duce la finalizarea nereușită și la codul de eroare SSL_ERROR_WANT_RETRY_VERIFY, care ar trebui să fie returnat doar dacă aplicația a apelat anterior SSL_CTX_set_cert_verify_callback().
Deoarece majoritatea aplicațiilor nu apelează SSL_CTX_set_cert_verify_callback(), apariția erorii SSL_ERROR_WANT_RETRY_VERIFY poate fi interpretată greșit, provocând prăbușiri, blocaje sau alte reacții incorecte. Problema prezintă cel mai mare pericol în combinație cu o altă eroare din OpenSSL 3.0, care duce la apariția unei erori interne în procesarea certificatelor în X509_verify_cert() care nu au extensia „Subject Alternative Name”, dar care au restricții legate de nume în utilizare. În acest caz, atacul poate duce la anomalii pentru aplicații în procesarea certificatelor și stabilirea sesiunilor TLS.
Sursa: opennet.ro
