Corrective releases of the cryptographic library OpenSSL 3.0.1 and 1.1.1m are now available. Version 3.0.1 fixes the vulnerability (CVE-2021-4044), and both releases address about a dozen bugs.
The vulnerability is present in the implementation of SSL/TLS clients and is related to how the libssl library incorrectly handles negative error code values returned by the X509_verify_cert() function, which is called to verify the certificate sent to the client by the server. Negative codes are returned when internal errors occur, such as being unable to allocate memory for a buffer. If such an error is returned, subsequent calls to input/output functions, such as SSL_connect() and SSL_do_handshake(), will result in an unsuccessful completion and the SSL_ERROR_WANT_RETRY_VERIFY error code, which should only be returned if the application previously called SSL_CTX_set_cert_verify_callback().
Since most applications do not call SSL_CTX_set_cert_verify_callback(), the occurrence of the SSL_ERROR_WANT_RETRY_VERIFY error may be misinterpreted and lead to crashes, looping, or other incorrect responses. The problem poses the greatest danger in combination with another error in OpenSSL 3.0, which leads to an internal error when processing certificates lacking the 'Subject Alternative Name' extension but with constraints tied to names in usage. In this case, an attack can result in application-dependent anomalies in certificate handling and the establishment of TLS sessions.
Source: opennet.ru
