OpenSSL 3.0.1 eta 1.1.1m bertsioak bertsio txikietarako eskuragarri daude orain. 3.0.1 bertsioak ahultasun bat konpontzen du (CVE-2021-4044), eta bi bertsioek beste dozena bat akats ere konpontzen dituzte.
Ahultasuna SSL/TLS bezeroen inplementazioan dago eta libssl liburutegiak X509_verify_cert() funtzioak itzulitako errore-kode negatiboak gaizki kudeatzen dituelako dago lotuta, zerbitzariak bezeroari transmititutako ziurtagiria egiaztatzeko deitzen dena. Kode negatiboak itzultzen dira barne-erroreak gertatzen direnean, adibidez, buffer baterako memoria ezin denean esleitu. Halako errore bat itzultzen bada, SSL_connect() eta SSL_do_handshake() bezalako I/O funtzioetarako ondorengo deiek hutsegite bat eta SSL_ERROR_WANT_RETRY_VERIFY errore-kodea eragingo dute, aplikazioak aurretik SSL_CTX_set_cert_verify_callback() deitu badu bakarrik itzuli beharko litzatekeena.
Aplikazio gehienek ez dutenez SSL_CTX_set_cert_verify_callback() deitzen, SSL_ERROR_WANT_RETRY_VERIFY errorea agertzea gaizki interpretatu daiteke eta kraskadura, begizta edo bestelako portaera okerra eragin dezake. Arazo hau arriskutsuena da OpenSSL 3.0-ko beste akats batekin konbinatzen denean, zeinak barne-errore bat eragiten baitu X509_verify_cert()-ek "Subject Alternative Name" luzapenik gabeko baina erabilera-murrizketetan izen-loturak dituzten ziurtagiriak maneiatzen dituenean. Kasu honetan, erasoak aplikazioaren anomalia espezifikoak sor ditzake ziurtagirien prozesamenduan eta TLS saioa ezartzean.
Iturria: opennet.ru
