The llhttp parser in the http module in Node.js does not strictly use the CRLF sequence to delimit HTTP requests. This can lead to HTTP Request Smuggling (HRS).
The CR character (without LF) is sufficient to delimit HTTP header fields in the llhttp parser. According to RFC7230 section 3, only the CRLF sequence should delimit each header-field.
This vulnerability impacts all Node.js active versions: v16, v18, and, v20.
Platform | Package | Release Date | Advisory |
---|---|---|---|
Amazon Linux 2023 | nodejs | 2023-07-05 20:13 | ALAS2023-2023-237 |
Score Type | Score | Vector | |
---|---|---|---|
Amazon Linux | CVSSv3 | 5.3 | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
NVD | CVSSv3 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |