// For flags

CVE-2025-23167

nodejs: Improper HTTP Header Termination in Node.js 20 Enables Request Smuggling

Severity Score

6.5
*CVSS v3

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

0
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Attend
*SSVC
Descriptions

A flaw in Node.js 20's HTTP parser allows improper termination of HTTP/1 headers using `\r
\rX` instead of the required `\r
\r
`.
This inconsistency enables request smuggling, allowing attackers to bypass proxy-based access controls and submit unauthorized requests. The issue was resolved by upgrading `llhttp` to version 9, which enforces correct header termination. Impact:
* This vulnerability affects only Node.js 20.x users prior to the `llhttp` v9 upgrade.

A flaw was found in the HTTP parser of Node.js. This vulnerability allows attackers to perform request smuggling and bypass proxy-based access controls via improperly terminated HTTP/1 headers using \r
\rX instead of the standard \r
\r
.

A flaw in Node.js 20's HTTP parser allows improper termination of HTTP/1 headers using `\r
\rX` instead of the required `\r
\r
`. This inconsistency enables request smuggling, allowing attackers to bypass proxy-based access controls and submit unauthorized requests. The issue was resolved by upgrading `llhttp` to version 9, which enforces correct header termination. Impact: * This vulnerability affects only Node.js 20.x users prior to the `llhttp` v9 upgrade.

This update for nodejs20 fixes the following issues. Improper error handling in async cryptographic operations crashes process. Improper HTTP header block termination in llhttp. Add missing call to uv_fs_req_cleanup. Other bug fixes.

*Credits: N/A
CVSS Scores
Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None
Attack Vector
Network
Attack Complexity
Low
Authentication
None
Confidentiality
Partial
Integrity
Partial
Availability
None
* Common Vulnerability Scoring System
SSVC
  • Decision:Attend
Exploitation
None
Automatable
Yes
Tech. Impact
Partial
* Organization's Worst-case Scenario
Timeline
  • 2025-01-12 CVE Reserved
  • 2025-05-19 CVE Published
  • 2025-05-27 CVE Updated
  • 2025-07-05 EPSS Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
  • ---------- First Exploit
CWE
  • CWE-444: Inconsistent Interpretation of HTTP Requests ('HTTP Request/Response Smuggling')
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 4.0 < 4.*
Search vendor "Nodejs" for product "Node" and version " >= 4.0 < 4.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 5.0 < 5.*
Search vendor "Nodejs" for product "Node" and version " >= 5.0 < 5.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 6.0 < 6.*
Search vendor "Nodejs" for product "Node" and version " >= 6.0 < 6.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 7.0 < 7.*
Search vendor "Nodejs" for product "Node" and version " >= 7.0 < 7.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 8.0 < 8.*
Search vendor "Nodejs" for product "Node" and version " >= 8.0 < 8.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 9.0 < 9.*
Search vendor "Nodejs" for product "Node" and version " >= 9.0 < 9.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 10.0 < 10.*
Search vendor "Nodejs" for product "Node" and version " >= 10.0 < 10.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 11.0 < 11.*
Search vendor "Nodejs" for product "Node" and version " >= 11.0 < 11.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 12.0 < 12.*
Search vendor "Nodejs" for product "Node" and version " >= 12.0 < 12.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 13.0 < 13.*
Search vendor "Nodejs" for product "Node" and version " >= 13.0 < 13.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 14.0 < 14.*
Search vendor "Nodejs" for product "Node" and version " >= 14.0 < 14.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 15.0 < 15.*
Search vendor "Nodejs" for product "Node" and version " >= 15.0 < 15.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 16.0 < 16.*
Search vendor "Nodejs" for product "Node" and version " >= 16.0 < 16.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 17.0 < 17.*
Search vendor "Nodejs" for product "Node" and version " >= 17.0 < 17.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 18.0 < 18.*
Search vendor "Nodejs" for product "Node" and version " >= 18.0 < 18.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 19.0 < 19.*
Search vendor "Nodejs" for product "Node" and version " >= 19.0 < 19.*"
en
Affected
Nodejs
Search vendor "Nodejs"
Node
Search vendor "Nodejs" for product "Node"
>= 20.0.0 <= 20.19.1
Search vendor "Nodejs" for product "Node" and version " >= 20.0.0 <= 20.19.1"
en
Affected