Not rated
CVE-2023-30589 The llhttp parser in the http module in Node v20.2.0 does not strictly use the CRLF sequence to delimit HTTP requests
Description
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
Affected products and versions
| Product | Affected versions | Fixed in |
|---|---|---|
| Node 20.0 | 20.0 → < 20.3.1 | 20.3.1 |
| Node 19.0 | 19.0 → latest | No fix stated |
| Node 18.0 | 18.0 → < 18.16.1 | 18.16.1 |
| Node 17.0 | 17.0 → latest | No fix stated |
| Node 16.0 | 16.0 → < 16.20.1 | 16.20.1 |
| Node 15.0 | 15.0 → latest | No fix stated |
| Node 14.0 | 14.0 → latest | No fix stated |
| Node 13.0 | 13.0 → latest | No fix stated |
| Node 12.0 | 12.0 → latest | No fix stated |
Show the 8 other branches Hide the 8 other branches
| Product | Affected versions | Fixed in |
|---|---|---|
| Node 11.0 | 11.0 → latest | No fix stated |
| Node 10.0 | 10.0 → latest | No fix stated |
| Node 9.0 | 9.0 → latest | No fix stated |
| Node 8.0 | 8.0 → latest | No fix stated |
| Node 7.0 | 7.0 → latest | No fix stated |
| Node 6.0 | 6.0 → latest | No fix stated |
| Node 5.0 | 5.0 → latest | No fix stated |
| Node 4.0 | 4.0 → latest | No fix stated |
Other CVEs of Node
The 129 CVEs of Node →
CVE-2026-106074
A flaw in Node.js `crypto` causes the internal entropy caches used by `crypto.randomUUID()`, `crypto.randomUUIDv7()`,…
4.8
Medium
CVE-2026-106072
A flaw in Node.js TLS hostname verification allows a certificate with only a DNS SAN to authenticate an IP endpoint when…
6.7
Medium
CVE-2026-106073
A flaw in Node.js Permission Model filesystem enforcement leaves `fs.realpathSync()` without the required read…
3.3
Low
CVE-2026-105481
A flaw in Node.js HTTP Agent connection reuse can cause a client to accept as valid a response that was sent before…
6.5
Medium