Miggo Logo

CVE-2023-0465: Applications that use a non-default option when verifying certificates may be vulnerable to an...

5.3

CVSS Score
3.1

Basic Information

EPSS Score
0.55943%
Published
3/28/2023
Updated
2/18/2025
KEV Status
No
Technology
-

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability allows bypassing certificate policy checks when policy processing is enabled and a leaf certificate contains an invalid policy. I could not fetch commit details using the get_commit_infos tool due to the gitweb URL format. However, by manually inspecting the gitweb commit diff URLs provided in the vulnerability details, I identified that the patches primarily modify the static functions check_leaf_certs and check_policy within crypto/x509/x509_vfy.c. These functions are responsible for the actual policy checking logic. The changes involve adding or correcting the handling of EXFLAG_INVALID_POLICY and refining logic related to explicit policy requirements, directly addressing the described flaw where invalid policies were ignored and checks skipped. The OpenSSL advisory and vulnerability description also highlight X509_verify_cert() as the high-level function whose call incorrectly succeeds and X509_VERIFY_PARAM_set1_policies() as the function that enables the vulnerable policy checking mode. Therefore, check_leaf_certs and check_policy are identified as containing the core vulnerability, while X509_verify_cert is a runtime indicator of the exploitation, and X509_VERIFY_PARAM_set1_policies enables the vulnerable pathway.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

*ppli**tions t**t us* * non-****ult option w**n v*ri*yin* **rti*i**t*s m*y ** vuln*r**l* to *n *tt**k *rom * m*li*ious ** to *ir*umv*nt **rt*in ****ks. Inv*li* **rti*i**t* poli*i*s in l*** **rti*i**t*s *r* sil*ntly i*nor** *y Op*nSSL *n* ot**r **rti*

Reasoning

T** vuln*r**ility *llows *yp*ssin* **rti*i**t* poli*y ****ks w**n poli*y pro**ssin* is *n**l** *n* * l*** **rti*i**t* *ont*ins *n inv*li* poli*y. I *oul* not **t** *ommit **t*ils usin* t** `**t_*ommit_in*os` tool *u* to t** *itw** URL *orm*t. *ow*v*r