Miggo Logo

CVE-2022-3358:
Using a Custom Cipher with `NID_undef` may lead to NULL encryption

7.5

CVSS Score
3.1

Basic Information

EPSS Score
0.94341%
Published
10/11/2022
Updated
2/5/2024
KEV Status
No
Technology
TechnologyRust

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
openssl-srcrust>= 300.0.0, < 300.0.10300.0.10

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from initialization functions (EVP_*Init_ex2) incorrectly fetching ciphers from providers instead of using custom ciphers directly. When a custom cipher is created with EVP_CIPHER_meth_new(NID_undef), these initialization functions match it to the NULL cipher through provider lookup. The commit diff shows fixes in evp_cipher_init_internal (called by these functions) that add checks for cipher origin (EVP_ORIG_METH), confirming the vulnerable code path was in these initialization functions. The vulnerability documentation explicitly names these functions as entry points for the flawed behavior.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

Op*nSSL supports *r**tin* * *ustom *ip**r vi* t** l****y *VP_*IP**R_m*t*_n*w() *un*tion *n* *sso*i*t** *un*tion **lls. T*is *un*tion w*s **pr***t** in Op*nSSL *.* *n* *ppli**tion *ut*ors *r* inst*** *n*our**** to us* t** n*w provi**r m****nism in or*

Reasoning

T** vuln*r**ility st*ms *rom initi*liz*tion *un*tions (*VP_*Init_*x*) in*orr**tly **t**in* *ip**rs *rom provi**rs inst*** o* usin* *ustom *ip**rs *ir**tly. W**n * *ustom *ip**r is *r**t** wit* *VP_*IP**R_m*t*_n*w(NI*_un***), t**s* initi*liz*tion *un*