cve-2025-23167
Vulnerability from cvelistv5
Published
2025-05-19 01:25
Modified
2025-05-27 18:31
Severity ?
EPSS score ?
Summary
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`.
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.
References
{ "containers": { "adp": [ { "metrics": [ { "other": { "content": { "id": "CVE-2025-23167", "options": [ { "Exploitation": "none" }, { "Automatable": "yes" }, { "Technical Impact": "partial" } ], "role": "CISA Coordinator", "timestamp": "2025-05-19T15:09:55.841520Z", "version": "2.0.3" }, "type": "ssvc" } } ], "problemTypes": [ { "descriptions": [ { "cweId": "CWE-444", "description": "CWE-444 Inconsistent Interpretation of HTTP Requests (\u0027HTTP Request Smuggling\u0027)", "lang": "en", "type": "CWE" } ] } ], "providerMetadata": { "dateUpdated": "2025-05-19T15:13:21.685Z", "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP" }, "title": "CISA ADP Vulnrichment" } ], "cna": { "affected": [ { "defaultStatus": "unaffected", "product": "node", "vendor": "nodejs", "versions": [ { "lessThan": "4.*", "status": "affected", "version": "4.0", "versionType": "semver" }, { "lessThan": "5.*", "status": "affected", "version": "5.0", "versionType": "semver" }, { "lessThan": "6.*", "status": "affected", "version": "6.0", "versionType": "semver" }, { "lessThan": "7.*", "status": "affected", "version": "7.0", "versionType": "semver" }, { "lessThan": "8.*", "status": "affected", "version": "8.0", "versionType": "semver" }, { "lessThan": "9.*", "status": "affected", "version": "9.0", "versionType": "semver" }, { "lessThan": "10.*", "status": "affected", "version": "10.0", "versionType": "semver" }, { "lessThan": "11.*", "status": "affected", "version": "11.0", "versionType": "semver" }, { "lessThan": "12.*", "status": "affected", "version": "12.0", "versionType": "semver" }, { "lessThan": "13.*", "status": "affected", "version": "13.0", "versionType": "semver" }, { "lessThan": "14.*", "status": "affected", "version": "14.0", "versionType": "semver" }, { "lessThan": "15.*", "status": "affected", "version": "15.0", "versionType": "semver" }, { "lessThan": "16.*", "status": "affected", "version": "16.0", "versionType": "semver" }, { "lessThan": "17.*", "status": "affected", "version": "17.0", "versionType": "semver" }, { "lessThan": "18.*", "status": "affected", "version": "18.0", "versionType": "semver" }, { "lessThan": "19.*", "status": "affected", "version": "19.0", "versionType": "semver" }, { "lessThanOrEqual": "20.19.1", "status": "affected", "version": "20.0", "versionType": "semver" } ] } ], "descriptions": [ { "lang": "en", "value": "A flaw in Node.js 20\u0027s 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." } ], "metrics": [ { "cvssV3_0": { "baseScore": 6.5, "baseSeverity": "MEDIUM", "vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N", "version": "3.0" } } ], "providerMetadata": { "dateUpdated": "2025-05-27T18:31:36.494Z", "orgId": "36234546-b8fa-4601-9d6f-f4e334aa8ea1", "shortName": "hackerone" }, "references": [ { "url": "https://nodejs.org/en/blog/vulnerability/may-2025-security-releases" } ] } }, "cveMetadata": { "assignerOrgId": "36234546-b8fa-4601-9d6f-f4e334aa8ea1", "assignerShortName": "hackerone", "cveId": "CVE-2025-23167", "datePublished": "2025-05-19T01:25:08.454Z", "dateReserved": "2025-01-12T01:00:00.648Z", "dateUpdated": "2025-05-27T18:31:36.494Z", "state": "PUBLISHED" }, "dataType": "CVE_RECORD", "dataVersion": "5.1", "meta": { "nvd": "{\"cve\":{\"id\":\"CVE-2025-23167\",\"sourceIdentifier\":\"support@hackerone.com\",\"published\":\"2025-05-19T02:15:17.583\",\"lastModified\":\"2025-05-19T16:15:27.317\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"A flaw in Node.js 20\u0027s 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.\"},{\"lang\":\"es\",\"value\":\"Una falla en el analizador HTTP de Node.js 20 permite la terminaci\u00f3n incorrecta de los encabezados HTTP/1 mediante `\\\\r\\\\n\\\\rX` en lugar del `\\\\r\\\\n\\\\r\\\\n` requerido. Esta inconsistencia facilita el contrabando de solicitudes, lo que permite a los atacantes eludir los controles de acceso basados en proxy y enviar solicitudes no autorizadas. El problema se solucion\u00f3 actualizando `llhttp` a la versi\u00f3n 9, que aplica la terminaci\u00f3n correcta de los encabezados. Impacto: * Esta vulnerabilidad afecta solo a los usuarios de Node.js 20.x anteriores a la actualizaci\u00f3n a `llhttp` v9.\"}],\"metrics\":{\"cvssMetricV30\":[{\"source\":\"support@hackerone.com\",\"type\":\"Secondary\",\"cvssData\":{\"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\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"LOW\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":3.9,\"impactScore\":2.5}]},\"weaknesses\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-444\"}]}],\"references\":[{\"url\":\"https://nodejs.org/en/blog/vulnerability/may-2025-security-releases\",\"source\":\"support@hackerone.com\"}]}}" } }
Loading...
Loading...
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.