{"id":"CVE-2025-23167","state":"PUBLISHED","title":"A flaw in Node.js 20's HTTP parser allows improper termination of HTTP/1 headers using `\\r\\n\\rX` instead of the required `\\r\\n\\r\\n`.","description":"A flaw in Node.js 20's HTTP parser allows improper termination of HTTP/1 headers using `\\r\\n\\rX` instead of the required `\\r\\n\\r\\n`.\nThis inconsistency enables request smuggling, allowing attackers to bypass proxy-based access controls and submit unauthorized requests.\n\nThe issue was resolved by upgrading `llhttp` to version 9, which enforces correct header termination.\n\nImpact:\n* This vulnerability affects only Node.js 20.x users prior to the `llhttp` v9 upgrade.","publishedAt":"2025-05-19T01:25:08.454Z","updatedAt":"2025-05-27T18:31:36.494Z","severity":{"score":6.5,"label":"Medium","version":"3.0","vector":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","source":"hackerone"},"assigner":"hackerone","products":["nodejs node"],"affected":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"4.0","status":"affected","lessThan":"4.*","versionType":"semver"},{"version":"5.0","status":"affected","lessThan":"5.*","versionType":"semver"},{"version":"6.0","status":"affected","lessThan":"6.*","versionType":"semver"},{"version":"7.0","status":"affected","lessThan":"7.*","versionType":"semver"},{"version":"8.0","status":"affected","lessThan":"8.*","versionType":"semver"},{"version":"9.0","status":"affected","lessThan":"9.*","versionType":"semver"},{"version":"10.0","status":"affected","lessThan":"10.*","versionType":"semver"},{"version":"11.0","status":"affected","lessThan":"11.*","versionType":"semver"},{"version":"12.0","status":"affected","lessThan":"12.*","versionType":"semver"},{"version":"13.0","status":"affected","lessThan":"13.*","versionType":"semver"},{"version":"14.0","status":"affected","lessThan":"14.*","versionType":"semver"},{"version":"15.0","status":"affected","lessThan":"15.*","versionType":"semver"},{"version":"16.0","status":"affected","lessThan":"16.*","versionType":"semver"},{"version":"17.0","status":"affected","lessThan":"17.*","versionType":"semver"},{"version":"18.0","status":"affected","lessThan":"18.*","versionType":"semver"},{"version":"19.0","status":"affected","lessThan":"19.*","versionType":"semver"},{"version":"20.0","status":"affected","lessThanOrEqual":"20.19.1","versionType":"semver"}]}],"references":["https://nodejs.org/en/blog/vulnerability/may-2025-security-releases"],"weaknesses":["CWE-444"],"ingestedAt":"2026-10-29T20:08:39.238Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2025/23xxx/CVE-2025-23167.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2025-23167","state":"PUBLISHED","datePublished":"2025-05-19T01:25:08.454Z","dateUpdated":"2025-05-27T18:31:36.494Z","assignerShortName":"hackerone","assignerOrgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateReserved":"2025-01-12T01:00:00.648Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"A flaw in Node.js 20's HTTP parser allows improper termination of HTTP/1 headers using `\\r\\n\\rX` instead of the required `\\r\\n\\r\\n`.\nThis inconsistency enables request smuggling, allowing attackers to bypass proxy-based access controls and submit unauthorized requests.\n\nThe issue was resolved by upgrading `llhttp` to version 9, which enforces correct header termination.\n\nImpact:\n* This vulnerability affects only Node.js 20.x users prior to the `llhttp` v9 upgrade."}],"affected":[{"vendor":"nodejs","product":"node","defaultStatus":"unaffected","versions":[{"version":"4.0","status":"affected","lessThan":"4.*","versionType":"semver"},{"version":"5.0","status":"affected","lessThan":"5.*","versionType":"semver"},{"version":"6.0","status":"affected","lessThan":"6.*","versionType":"semver"},{"version":"7.0","status":"affected","lessThan":"7.*","versionType":"semver"},{"version":"8.0","status":"affected","lessThan":"8.*","versionType":"semver"},{"version":"9.0","status":"affected","lessThan":"9.*","versionType":"semver"},{"version":"10.0","status":"affected","lessThan":"10.*","versionType":"semver"},{"version":"11.0","status":"affected","lessThan":"11.*","versionType":"semver"},{"version":"12.0","status":"affected","lessThan":"12.*","versionType":"semver"},{"version":"13.0","status":"affected","lessThan":"13.*","versionType":"semver"},{"version":"14.0","status":"affected","lessThan":"14.*","versionType":"semver"},{"version":"15.0","status":"affected","lessThan":"15.*","versionType":"semver"},{"version":"16.0","status":"affected","lessThan":"16.*","versionType":"semver"},{"version":"17.0","status":"affected","lessThan":"17.*","versionType":"semver"},{"version":"18.0","status":"affected","lessThan":"18.*","versionType":"semver"},{"version":"19.0","status":"affected","lessThan":"19.*","versionType":"semver"},{"version":"20.0","status":"affected","lessThanOrEqual":"20.19.1","versionType":"semver"}]}],"references":[{"url":"https://nodejs.org/en/blog/vulnerability/may-2025-security-releases"}],"metrics":[{"cvssV3_0":{"version":"3.0","vectorString":"CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N","baseScore":6.5,"baseSeverity":"MEDIUM"}}],"providerMetadata":{"shortName":"hackerone","orgId":"36234546-b8fa-4601-9d6f-f4e334aa8ea1","dateUpdated":"2025-05-27T18:31:36.494Z"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2025-05-19T15:09:55.841520Z","id":"CVE-2025-23167","options":[{"Exploitation":"none"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-444","type":"CWE","lang":"en","description":"CWE-444 Inconsistent Interpretation of HTTP Requests ('HTTP Request Smuggling')"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2025-05-19T15:13:21.685Z"}}]}}}