Miggo Logo

CVE-2024-2379: libcurl skips the certificate verification for a QUIC connection under certain conditions, when...

6.3

CVSS Score
3.1

Basic Information

EPSS Score
0.50699%
CWE
-
Published
3/27/2024
Updated
11/14/2024
KEV Status
No
Technology
-

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability description states that libcurl skips certificate verification for QUIC connections with wolfSSL when an unknown/bad cipher or curve is used, because the error path accidentally skips verification and returns OK. The fixing commit aedbbdf18e689a5eee8dc396 modifies the curl_wssl_init_ctx function in lib/vquic/vquic-tls.c. Specifically, it adds assignments to the result variable (e.g., result = CURLE_BAD_FUNCTION_ARGUMENT;) in error handling blocks related to wolfSSL_CTX_set_cipher_list and wolfSSL_CTX_set1_groups_list. Before this fix, if these wolfSSL functions failed (which would happen with bad ciphers/curves), curl_wssl_init_ctx could still return CURLE_OK if no prior error had occurred within the function. This incorrect success indication would then lead to the rest of the connection setup proceeding with a faulty TLS configuration, causing the certificate verification to be bypassed. Therefore, curl_wssl_init_ctx is identified as the vulnerable function due to its flawed error propagation in these specific scenarios.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

li**url skips t** **rti*i**t* v*ri*i**tion *or * QUI* *onn**tion un**r **rt*in *on*itions, w**n *uilt to us* wol*SSL. I* tol* to us* *n unknown/*** *ip**r or *urv*, t** *rror p*t* ***i**nt*lly skips t** v*ri*i**tion *n* r*turns OK, t*us i*norin* *ny

Reasoning

T** vuln*r**ility **s*ription st*t*s t**t li**url skips **rti*i**t* v*ri*i**tion *or QUI* *onn**tions wit* wol*SSL w**n *n unknown/*** *ip**r or *urv* is us**, ****us* t** *rror p*t* ***i**nt*lly skips v*ri*i**tion *n* r*turns OK. T** *ixin* *ommit `