Korrigerende udgivelser af OpenSSL kryptografiske bibliotek 3.0.1 og 1.1.1m er tilgængelige. Version 3.0.1 rettet sårbarheden (CVE-2021-4044), og omkring et dusin fejl blev rettet i begge udgivelser.
Sårbarheden eksisterer i implementeringen af SSL/TLS-klienter og er relateret til, at libssl-biblioteket forkert håndterer negative fejlkoder, der returneres af X509_verify_cert()-funktionen, kaldet for at verificere certifikatet, der er sendt til klienten af serveren. Negative koder returneres, når der opstår interne fejl, for eksempel hvis hukommelse ikke kan allokeres til bufferen. Hvis en sådan fejl returneres, vil efterfølgende kald til I/O-funktioner såsom SSL_connect() og SSL_do_handshake() returnere fejl og en SSL_ERROR_WANT_RETRY_VERIFY fejlkode, som kun skal returneres, hvis applikationen tidligere har foretaget et kald til SSL_CTX_set_cert_verify_callback().
Da de fleste applikationer ikke kalder SSL_CTX_set_cert_verify_callback(), kan forekomsten af en SSL_ERROR_WANT_RETRY_VERIFY fejl misfortolkes og resultere i et nedbrud, en loop eller et andet forkert svar. Problemet er mest farligt i kombination med en anden fejl i OpenSSL 3.0, som forårsager en intern fejl ved behandling af certifikater i X509_verify_cert() uden udvidelsen "Subject Alternative Name", men med navnebindinger i brugsbegrænsninger. I dette tilfælde kan angrebet føre til applikationsspecifikke anomalier i certifikathåndtering og TLS-sessionsetablering.
Kilde: opennet.ru