Node.js HTTP Req Smuggling via llhttp Parser (v16-v20)
CVE-2023-30589 Published on July 1, 2023
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
Products Associated with CVE-2023-30589
You can be notified by email with stack.watch whenever vulnerabilities like CVE-2023-30589 are published in these products:
Affected Versions
NodeJS Node:- Version 4.0 and below 4.* is affected.
- Version 5.0 and below 5.* is affected.
- Version 6.0 and below 6.* is affected.
- Version 7.0 and below 7.* is affected.
- Version 8.0 and below 8.* is affected.
- Version 9.0 and below 9.* is affected.
- Version 10.0 and below 10.* is affected.
- Version 11.0 and below 11.* is affected.
- Version 12.0 and below 12.* is affected.
- Version 13.0 and below 13.* is affected.
- Version 14.0 and below 14.* is affected.
- Version 15.0 and below 15.* is affected.
- Version 16.0 and below 16.20.1 is affected.
- Version 17.0 and below 17.* is affected.
- Version 18.0 and below 18.16.1 is affected.
- Version 19.0 and below 19.* is affected.
- Version 20.0 and below 20.3.1 is affected.
Vulnerable Packages
The following package name and versions may be associated with CVE-2023-30589
| Package Manager | Vulnerable Package | Versions | Fixed In |
|---|---|---|---|
| pip | aiohttp | <= 3.8.4 | 3.8.5 |
Exploit Probability
EPSS (Exploit Prediction Scoring System) scores estimate the probability that a vulnerability will be exploited in the wild within the next 30 days. The percentile shows you how this score compares to all other vulnerabilities.