Skip to content
OpenAdvisories
High · 7.5 Public exploit CVE-2022-3358 EUVD-2022-7013GHSA-4f63-89w9-3jjvRUSTSEC-2022-0059

Using a Custom Cipher with NID_undef may lead to NULL encryption

Published Oct 11, 2022 · Updated Sep 16, 2024 · Assigned by openssl

Description

OpenSSL supports creating a custom cipher via the legacy EVP_CIPHER_meth_new() function and associated function calls. This function was deprecated in OpenSSL 3.0 and application authors are instead encouraged to use the new provider mechanism in order to implement custom ciphers. OpenSSL versions 3.0.0 to 3.0.5 incorrectly handle legacy custom ciphers passed to the EVP_EncryptInit_ex2(), EVP_DecryptInit_ex2() and EVP_CipherInit_ex2() functions (as well as other similarly named encryption and decryption initialisation functions). Instead of using the custom cipher directly it incorrectly tries to fetch an equivalent cipher from the available providers. An equivalent cipher is found based on the NID passed to EVP_CIPHER_meth_new(). This NID is supposed to represent the unique NID for a given cipher. However it is possible for an application to incorrectly pass NID_undef as this value in the call to EVP_CIPHER_meth_new(). When NID_undef is used in this way the OpenSSL encryption/decryption initialisation function will match the NULL cipher as being equivalent and will fetch this from the available providers. This will succeed if the default provider has been loaded (or if a third party provider has been loaded that offers this cipher). Using the NULL cipher means that the plaintext is emitted as the ciphertext. Applications are only affected by this issue if they call EVP_CIPHER_meth_new() using NID_undef and subsequently use it in a call to an encryption/decryption initialisation function. Applications that only use SSL/TLS are not impacted by this issue. Fixed in OpenSSL 3.0.6 (Affected 3.0.0-3.0.5).

Affected products

VendorProductAffectedFixed
OpenSSL OpenSSL Fixed in OpenSSL 3.0.6 (Affected 3.0.0-3.0.5) —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 openssl 3.0.7-1 —
Debian 13 openssl 3.0.7-1 —
Debian 12 openssl 3.0.7-1 —
ReleasePackageFixed inAdvisory
Ubuntu 22.04 LTS openssl 3.0.2-0ubuntu1.7 USN-5710-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 16.04 LTS edk2 No fix yet —
ReleasePackageFixed inAdvisory
RHEL 9 openssl +3 1:3.0.7-6.el9_2 RHSA-2023:2523

AlmaLinux

Errata ↗
ReleasePackageFixed inAdvisory
AlmaLinux 9 openssl +3 1:3.0.7-6.el9_2 ALSA-2023:2523
ReleasePackageFixed inAdvisory
SLES 15 SP4 openssl-3 3.0.1-150400.4.11.1 SUSE-SU-2022:3843-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed openssl-3 3.0.7-1.1 openSUSE-SU-2024:12475-1
openSUSE Leap 15.4 openssl-3 3.0.1-150400.4.11.1 SUSE-SU-2022:3843-1
ReleasePackageFixed inAdvisory
Alpine v3.24 openssl 3.0.6-r0 —
Alpine v3.23 openssl 3.0.6-r0 —
Alpine v3.22 openssl 3.0.6-r0 —
Alpine v3.21 openssl 3.0.6-r0 —
Alpine v3.20 openssl 3.0.6-r0 —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 openssl 3.0.6-r0 —
Alpine v3.18 openssl 3.0.6-r0 —
Alpine v3.17 openssl 3.0.6-r0 —
Alpine v3.16 openssl3 3.0.6-r0 —
Alpine v3.15 openssl3 3.0.6-r0 —

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 openssl +3 1:3.0.8-1.amzn2023.0.1 ALAS2023-2023-054

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 9 openssl +3 1:3.0.7-6.0.1.el9_2 ELSA-2023-2523

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling openssl 3.0.7-r0 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

Metasploit 1 module

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
crates.io openssl-src >= 300.0.0, < 300.0.10 300.0.10 GHSA-4f63-89w9-3jjv

Advisories 9

References