llhttp vulnerable to HTTP request smuggling
High severity
GitHub Reviewed
Published
Jul 1, 2023
to the GitHub Advisory Database
•
Updated Jun 24, 2024
Description
Published by the National Vulnerability Database
Jul 1, 2023
Published to the GitHub Advisory Database
Jul 1, 2023
Reviewed
Jul 11, 2023
Last updated
Jun 24, 2024
The llhttp parser in the http module in Node v20.2.0 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 impacts all Node.js active versions: v16, v18, and, v20
References