Corrigerende versies van de cryptografische bibliotheek OpenSSL 3.0.1 en 1.1.1m zijn beschikbaar. De kwetsbaarheid (CVE-2021-4044) is verholpen in versie 3.0.1, en in beide versies zijn ongeveer een dozijn bugs opgelost.
De kwetsbaarheid is aanwezig in de implementatie van SSL/TLS-clients en heeft betrekking op het feit dat de libssl-bibliotheek negatieve waarden van foutcodes, die worden geretourneerd door de functie X509_verify_cert(), niet correct verwerkt. Deze functie wordt aangeroepen om het certificaat te controleren dat door de server aan de client is doorgegeven. Negatieve codes worden geretourneerd bij interne fouten, bijvoorbeeld wanneer er niet genoeg geheugen voor een buffer kan worden toegewezen. Bij het retourneren van een dergelijke fout zal een daaropvolgende aanroep van invoer-/uitvoerende functies, zoals SSL_connect() en SSL_do_handshake(), resulteren in een onsuccesvolle beƫindiging en de foutcode SSL_ERROR_WANT_RETRY_VERIFY, die alleen moet worden geretourneerd als de applicatie eerder SSL_CTX_set_cert_verify_callback() heeft aangeroepen.
Aangezien de meeste applicaties SSL_CTX_set_cert_verify_callback() niet aanroepen, kan het verschijnen van de fout SSL_ERROR_WANT_RETRY_VERIFY verkeerd worden geïnterpreteerd en leiden tot een crash, een oneindige lus of andere onjuiste reacties. Het probleem vormt de grootste bedreiging in combinatie met een andere fout in OpenSSL 3.0 die leidt tot een interne fout bij het verwerken van certificaten zonder de extensie 'Subject Alternative Name', maar met bindingen aan namen in gebruiksbeperkingen. In dit geval kan een aanval leiden tot applicatie-afhankelijke anomalieën bij de verwerking van certificaten en het opzetten van TLS-sessies.
Bron: opennet.ru
