Es sind Korrekturversionen der kryptografischen Bibliothek OpenSSL 3.0.1 und 1.1.1m verfügbar. In der Version 3.0.1 wurde eine Schwachstelle (CVE-2021-4044) behoben, außerdem wurden in beiden Versionen etwa ein Dutzend Fehler korrigiert.
Die Schwachstelle tritt in der Implementierung von SSL/TLS-Clients auf und hängt damit zusammen, dass die Bibliothek libssl negative Werte von Fehlercodes, die von der Funktion X509_verify_cert() zurückgegeben werden, die zur Überprüfung des vom Server an den Client übermittelten Zertifikats aufgerufen wird, nicht korrekt verarbeitet. Negative Codes werden bei internen Fehlern zurückgegeben, beispielsweise wenn der Speicher für einen Puffer nicht zugewiesen werden kann. Wenn ein solcher Fehler zurückgegeben wird, führt der anschließende Aufruf von Eingabe-/Ausgabefunktionen wie SSL_connect() und SSL_do_handshake() zu einem nicht erfolgreichen Abschluss und dem Fehlercode SSL_ERROR_WANT_RETRY_VERIFY, der nur zurückgegeben werden sollte, wenn die Anwendung zuvor SSL_CTX_set_cert_verify_callback() aufgerufen hat.
Da die meisten Anwendungen die Funktion SSL_CTX_set_cert_verify_callback() nicht aufrufen, kann das Auftreten des Fehlers SSL_ERROR_WANT_RETRY_VERIFY falsch interpretiert werden und zu einem Absturz, einer Endlosschleife oder anderen unerwarteten Reaktionen führen. Die größte Gefahr dieser Problematik besteht in Kombination mit einem anderen Fehler in OpenSSL 3.0, der zu einem internen Fehler bei der Verarbeitung in X509_verify_cert() von Zertifikaten ohne die Erweiterung "Subject Alternative Name" führt, jedoch mit Bindungen an Namen in den Nutzungsbeschränkungen. In diesem Fall kann die Attacke zu anwendungsabhängigen Anomalien bei der Verarbeitung von Zertifikaten und der Einrichtung von TLS-Sitzungen führen.
Quelle: opennet.ru
