Two high-severity vulnerabilities in the OpenSSL software library were disclosed on Thursday alongside the release of a patched version of the software, OpenSSL 1.1.1k.
OpenSSL is widely used to implement the Transport Layer Security (TLS) and Secure Sockets Layer (SSL) protocols, which support encrypted network connections. Alternatives include BoringSSL and LibreSSL, among others.
The first flaw, a certificate check bypass (CVE-2021-3450), arose as a result of code implemented in v1.1.1h to perform an additional validity check on certificates using certain cryptographic parameters. The check was intended to ensure that certificates not from Certificate Authorities are unable to issue other certificates.
As a result of the error, enabling strict certificate validation did the opposite of what it was supposed to do: It disabled the check to prevent non-CA certificates from issuing other certificates.
The conditions for abusing the vulnerability mitigate the likelihood of widespread exploitation, according to the organization.
How do you fix a problem like open-source security? Google has an idea, though constraints may not go down wellREAD MORE
"In order to be affected, an application must explicitly set the X509_V_FLAG_X509_STRICT verification flag and either not set a purpose for the certificate verification or, in the case of TLS client or server applications, override the default purpose," the OpenSSL advisory explains.
The vulnerability was reported on March 18, 2021, by Benjamin Kaduk from Akamai after being identified by software engineer Xiang Ding and others at the content delivery network. Tomáš Mráz, former principal software engineer at Red Hat, is credited with creating the patch. He told us he is now a full time contractor at OpenSSL Software Services, i.e - one of the core OpenSSL developers.
The second flaw, a null pointer dereference (CVE-2021-3449), has the potential to crash an OpenSSL server with a maliciously crafted renegotiation ClientHello message. Servers are only vulnerable if they have TLSv1.2 and renegotiation enabled, though that's commonly the default.
"If a TLSv1.2 renegotiation ClientHello omits the
signature_algorithms extension (where it was present in the initial ClientHello), but includes a
signature_algorithms_cert extension then a null pointer dereference will result, leading to a crash and a denial of service attack," the advisory explains.
All previous OpenSSL 1.1.1 versions are affected, so those upgrading their software should use the newly issued OpenSSL 1.1.1k, which incorporates a fix developed by Peter Kästle and Samuel Sapalski from Nokia. OpenSSL 1.0.2 is not affected.
Debian has issued a patch, as has Ubuntu. Other Linux distributions and operating system vendors are likely to follow. While these are not Heartbleed-level flaws, they should be dealt with sooner rather than later. ®