Skip to main content
← All vulnerabilities
CVE-2023-30589GHSA-CGGH-PQ45-6H9XBIT-NODE-2023-30589BIT-NODE-MIN-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.

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 4.*, 5.*, 6.*, 7.*, 8.*, and 13 more
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

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

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • 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

  • nodeBitnami

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

    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

  • llhttpnpm

    fixed in 8.1.1

References 9

hackerone.com

lists.fedoraproject.org

security.netapp.com