Fixes are available, update now
UPDATED A high severity vulnerability in OpenSSL could allow a malicious actor to achieve remote code execution (RCE) on server-side devices.
OpenSSL is a widely used cryptography library that provides an open source implementation of the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols.
It includes tools for generating RSA private keys and performing encryption and decryption, among other tasks.
The OpenSSL 3.0.4 release introduced a “serious bug” in the RSA implementation for X86_64 CPUs supporting the AVX512IFMA instructions, an advisory states.
This issue (CVE-2022-2274) makes the RSA implementation with 2048-bit private keys incorrect, meaning memory corruption will happen during the computation.
As a consequence of the memory corruption, an attacker may be able to trigger RCE on the machine performing the computation, OpenSSL maintainers said.
This issue was reported to OpenSSL on June 22, 2022, by Xi Ruoyao, who also developed the fix.
SSL/TLS servers or other servers using 2048-bit RSA private keys running on machines supporting AVX512IFMA instructions of the X86_64 architecture are affected by this issue.
“On a vulnerable machine, proper testing of OpenSSL would fail and should be noticed before deployment,” the advisory reads.
Users of the OpenSSL 3.0.4 version should upgrade to OpenSSL 3.0.5. OpenSSL 1.1.1 and 1.0.2 are not affected by this issue.
Another issue fixed in the latest version of OpenSSL is a moderate-severity implementation bug that could cause encryption to fail in some circumstances.
AES OCB mode for 32-bit x86 platforms using the AES-NI assembly optimised implementation will not encrypt the entirety of the data. This could reveal sixteen bytes of data that was pre-existing in the memory that wasn’t written, the advisory explains.
“In the special case of ‘in place’ encryption, sixteen bytes of the plaintext would be revealed,” it reads.
Since OpenSSL does not support OCB based cipher suites for TLS and DTLS, they are both unaffected.
This issue affects versions 1.1.1 and 3.0. It was addressed in the releases of 1.1.1q and 3.0.5 on the 5th July 2022.
OpenSSL 1.1.1 users should upgrade to 1.1.1q OpenSSL 3.0 users should upgrade to 3.0.5.
This article was updated to contain further information.