OpenSSL 3.0.1 -päivitys korjaa haavoittuvuuden

OpenSSL-salauskirjaston versioiden 3.0.1 ja 1.1.1m korjaavat julkaisut ovat saatavilla. Versio 3.0.1 korjasi haavoittuvuuden (CVE-2021-4044), ja noin tusina virhettä korjattiin molemmissa julkaisuissa.

Haavoittuvuus on SSL/TLS-asiakkaiden toteutuksessa, ja se liittyy siihen, että libssl-kirjasto käsittelee virheellisesti negatiivisia virhekoodeja, jotka on palautettu X509_verify_cert()-funktiolla, jota kutsutaan varmistamaan palvelimen asiakkaalle välittämä varmenne. Negatiiviset koodit palautetaan sisäisten virheiden sattuessa, esimerkiksi jos muistia ei voida varata puskurille. Jos tällainen virhe palautetaan, myöhemmät kutsut I/O-funktioille, kuten SSL_connect() ja SSL_do_handshake(), palauttavat epäonnistumisen ja SSL_ERROR_WANT_RETRY_VERIFY-virhekoodin, joka tulee palauttaa vain, jos sovellus on aiemmin kutsunut SSL_CTX_set_cert(verify_callback).

Koska useimmat sovellukset eivät kutsu SSL_CTX_set_cert_verify_callback(), SSL_ERROR_WANT_RETRY_VERIFY-virhe voidaan tulkita väärin ja aiheuttaa kaatumisen, silmukan tai muun virheellisen vastauksen. Ongelma on vaarallisin yhdessä toisen OpenSSL 3.0:n bugin kanssa, joka aiheuttaa sisäisen virheen käsiteltäessä varmenteita X509_verify_cert() -tiedostossa ilman "Subject Alternative Name" -laajennusta, mutta käyttörajoituksissa on nimisidoksia. Tässä tapauksessa hyökkäys voi johtaa sovelluskohtaisiin poikkeamiin varmenteiden käsittelyssä ja TLS-istunnon muodostamisessa.

Lähde: opennet.ru

Lisää kommentti