Name | CVE-2023-30589 |
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 |
Source | CVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more) |
References | DLA-3886-1, DSA-5589-1 |
Debian Bugs | 977716, 1039990 |
The table below lists information on source packages.
Source Package | Release | Version | Status |
---|---|---|---|
nodejs (PTS) | jessie | 0.10.29~dfsg-2 | vulnerable |
stretch | 4.8.2~dfsg-1 | vulnerable | |
buster (security), buster, buster (lts) | 10.24.0~dfsg-1~deb10u4 | fixed | |
bullseye | 12.22.12~dfsg-1~deb11u4 | vulnerable | |
bullseye (security) | 12.22.12~dfsg-1~deb11u5 | fixed | |
bookworm | 18.19.0+dfsg-6~deb12u2 | fixed | |
bookworm (security) | 18.19.0+dfsg-6~deb12u1 | fixed | |
sid, trixie | 20.17.0+dfsg-2 | fixed |
The information below is based on the following data on fixed versions.
Package | Type | Release | Fixed Version | Urgency | Origin | Debian Bugs |
---|---|---|---|---|---|---|
llhttp | ITP | 977716 | ||||
nodejs | source | jessie | (unfixed) | end-of-life | ||
nodejs | source | stretch | (unfixed) | end-of-life | ||
nodejs | source | buster | (not affected) | |||
nodejs | source | bullseye | 12.22.12~dfsg-1~deb11u5 | DLA-3886-1 | ||
nodejs | source | bookworm | 18.19.0+dfsg-6~deb12u1 | DSA-5589-1 | ||
nodejs | source | (unstable) | 18.13.0+dfsg1-1.1 | 1039990 |
[buster] - nodejs <not-affected> (llhttp dependency/embedding introduced in 12.x)
https://nodejs.org/en/blog/vulnerability/june-2023-security-releases#http-request-smuggling-via-empty-headers-separated-by-cr-medium-cve-2023-30589
https://hackerone.com/reports/2001873
https://github.com/advisories/GHSA-cggh-pq45-6h9x
Fixed by: https://github.com/nodejs/node/commit/e42ff4b0180f4e0f5712364dd6ea015559640152 (v16.x)