Miggo Logo

CVE-2024-27982: The team has identified a critical vulnerability in the http server of the most recent version of...

6.5

CVSS Score
3.0

Basic Information

EPSS Score
0.38672%
Published
5/7/2024
Updated
4/19/2025
KEV Status
No
Technology
-

Technical Details

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

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (CVE-2024-27982) describes an HTTP request smuggling issue in Node.js due to malformed headers, specifically when a space precedes the Content-Length header. The fix was identified in commit bd0aa5d44c894a170863de369dde6fc45faac0c2 in the nodejs/node repository, which updates deps/llhttp/src/llhttp.c.

The core of the HTTP parsing in llhttp is handled by the static function llhttp__internal__run, which is a large state machine. The patch modifies this state machine to be stricter about whitespace in headers by default. Previously, certain whitespace (like spaces before a header name or after a header value, related to OBS-folding) was tolerated, leading to potential misinterpretation of headers like Content-Length. The patch introduces checks for lenient parsing flags; if not set (which is the new default), such whitespace now causes a parsing error (e.g., "Unexpected whitespace after header value").

llhttp__internal__run is where the vulnerable parsing logic resided and where the fix was applied. llhttp_execute is the public API function that calls llhttp__internal__run and would therefore be part of the execution path when the vulnerability is triggered. Both functions are critical runtime indicators.

Vulnerable functions

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

WAF Protection Rules

WAF Rule

T** t**m **s i**nti*i** * *riti**l vuln*r**ility in t** *ttp s*rv*r o* t** most r***nt v*rsion o* No**, w**r* m*l*orm** *****rs **n l*** to *TTP r*qu*st smu**lin*. Sp**i*i**lly, i* * sp*** is pl**** ***or* * *ont*nt-l*n*t* *****r, it is not int*rpr*t

Reasoning

T** vuln*r**ility (*V*-****-*****) **s*ri**s *n *TTP r*qu*st smu**lin* issu* in No**.js *u* to m*l*orm** *****rs, sp**i*i**lly w**n * sp*** pr*****s t** `*ont*nt-L*n*t*` *****r. T** *ix w*s i**nti*i** in *ommit `**************************************