undici vulnerable to CRLF Injection via blob-like body 'type' property
undici does not validate the type property of a duck-typed blob-like request body before using it as the Content-Type header on the HTTP/1.1 dispatcher. In undici before 6.28.0, from 7.0.0 up to before 7.29.0, and from 8.0.0 up to before 8.9.0, an application that passes a hand-rolled blob-like body (via request, stream, pipeline, or dispatch) whose type is derived from untrusted input allows an attacker to inject CRLF sequences and append arbitrary HTTP headers, potentially smuggling a second request past the upstream. Native Blob objects are safe because their constructor strips CRLF from the type, and fetch is unaffected because it validates headers, but ecosystem libraries that build duck-typed blob shapes from user input can reach the vulnerable path. This is the same defect class as CVE-2022-35948 and CVE-2026-1527, on a header sink that the earlier fixes did not cover. The issue is fixed in undici 6.28.0, 7.29.0, and 8.9.0.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-15157
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 6 Nov 2026, 04:12 UTC · Revision 1
Source evidence
undici vulnerable to CRLF Injection via blob-like body 'type' property
core-osv · Original sourcePublished 29 Jul 2026, 21:17 UTC
undici does not validate the type property of a duck-typed blob-like request body before using it as the Content-Type header on the HTTP/1.1 dispatcher. In undici before 6.28.0, from 7.0.0 up to before 7.29.0, and from 8.0.0 up to before 8.9.0, an application that passes a hand-rolled blob-like body (via request, stream, pipeline, or dispatch) whose type is derived from untrusted input allows an attacker to inject CRLF sequences and append arbitrary HTTP headers, potentially smuggling a second request past the upstream. Native Blob objects are safe because their constructor strips CRLF from the type, and fetch is unaffected because it validates headers, but ecosystem libraries that build duck-typed blob shapes from user input can reach the vulnerable path. This is the same defect class as CVE-2022-35948 and CVE-2026-1527, on a header sink that the earlier fixes did not cover. The issue is fixed in undici 6.28.0, 7.29.0, and 8.9.0.
osv:CVE-2026-15157
Complete source record
{
"id": "65a7bde3ff42f5ac2733c761204cbdbbf6deb32b7cf2d9878c82fbb7dc1ca07b",
"url": "https://osv.dev/vulnerability/CVE-2026-15157",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "undici vulnerable to CRLF Injection via blob-like body 'type' property",
"summary": "undici does not validate the type property of a duck-typed blob-like request body before using it as the Content-Type header on the HTTP/1.1 dispatcher. In undici before 6.28.0, from 7.0.0 up to before 7.29.0, and from 8.0.0 up to before 8.9.0, an application that passes a hand-rolled blob-like body (via request, stream, pipeline, or dispatch) whose type is derived from untrusted input allows an attacker to inject CRLF sequences and append arbitrary HTTP headers, potentially smuggling a second request past the upstream. Native Blob objects are safe because their constructor strips CRLF from the type, and fetch is unaffected because it validates headers, but ecosystem libraries that build duck-typed blob shapes from user input can reach the vulnerable path. This is the same defect class as CVE-2022-35948 and CVE-2026-1527, on a header sink that the earlier fixes did not cover. The issue is fixed in undici 6.28.0, 7.29.0, and 8.9.0.",
"evidence": "osv:CVE-2026-15157",
"products": [],
"severity": "medium",
"structured": {
"id": "CVE-2026-15157",
"aliases": [
"CVE-2026-15157",
"GHSA-m8rv-5g2x-5cg5"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/nodejs/undici",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "01a912e49a50c48009ed2639d2a457a6ec26752a"
},
{
"introduced": "1cfe0949053aac6267f11b919cee9315a27f1fd6"
},
{
"fixed": "9e38fc121d2eb26086d41c7d9379b47a6fada1c5"
},
{
"introduced": "d7fbba51772deecb830a297647456a5e9f9fec57"
},
{
"fixed": "21a8e1ed1843e74c3004a2926c12bb0ceaca6b71"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "6.28.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "7.0.0"
},
{
"fixed": "7.29.0"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:nodejs:undici:*:*:*:*:*:node.js:*:*",
"range": [
{
"introduced": "8.0.0"
},
{
"fixed": "8.9.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"v6.27.0",
"v7.28.0",
"v8.8.0",
"v8.7.0",
"v8.6.0",
"v8.5.0",
"v6.26.0",
"v7.27.2",
"v8.4.1",
"v8.4.0",
"v7.27.1",
"v7.27.0",
"v7.26.0",
"v6.25.0",
"v8.3.0",
"v8.2.0",
"v7.25.0",
"v7.24.8",
"v8.1.0",
"v8.0.3",
"v8.0.2",
"v8.0.1",
"v8.0.0",
"v7.24.7",
"v7.24.6",
"v7.24.5",
"v7.24.4",
"v7.24.3",
"v7.24.2",
"v6.24.1",
"v6.24.0",
"v7.24.1",
"v7.24.0",
"v6.23.0",
"v7.23.0",
"v7.22.0",
"v7.21.0",
"v7.20.0",
"v7.19.2",
"v7.19.1",
"v7.19.0",
"v7.18.2",
"v7.18.1",
"v7.18.0",
"v6.22.0",
"v7.17.0",
"v7.16.0",
"v7.15.0",
"v6.21.3",
"v7.14.0",
"v7.13.0",
"v7.12.0",
"v7.11.0",
"v7.10.0",
"v6.21.2",
"v7.9.0",
"v7.8.0",
"v7.7.0",
"v7.5.0",
"v7.6.0",
"v7.4.0",
"v6.21.1",
"v7.3.0",
"v7.2.3",
"v7.2.2",
"v7.2.1",
"v7.2.0",
"v7.1.1",
"v7.1.0",
"v7.0.0",
"v6.21.0",
"v6.20.1",
"v6.20.0",
"v6.19.8",
"v6.19.7",
"v6.19.6",
"v6.19.5",
"v6.19.4",
"v6.19.3",
"v6.19.2",
"v6.19.1",
"v6.19.0",
"v6.18.2",
"v6.18.1",
"v6.18.0",
"v6.17.0",
"v6.16.1",
"v6.16.0",
"v6.15.0",
"v6.14.1",
"v6.14.0",
"v6.13.0",
"v6.12.0",
"v6.11.1",
"v6.11.0",
"v6.10.2",
"v6.10.1",
"v6.10.0",
"v6.9.0",
"v6.8.0",
"v6.7.1",
"v6.7.0",
"v6.6.2",
"v6.6.1",
"v5.28.2",
"v6.6.0",
"v6.5.0",
"v6.4.0",
"v6.3.0",
"v6.2.1",
"v6.2.0",
"v6.1.0",
"v6.0.1",
"v6.0.0",
"v5.28.1",
"v5.28.0",
"v5.27.2",
"v5.27.1",
"v5.27.0",
"v5.26.5",
"v5.26.4",
"v5.26.3",
"v5.26.2",
"v5.26.1",
"v5.26.0",
"v5.23.4",
"v5.25.3",
"v5.25.2",
"v5.25.1",
"v5.25.0",
"v5.24.0",
"v5.23.0",
"v5.22.1",
"v5.22.0",
"v5.21.2",
"v5.21.1",
"v5.21.0",
"v5.20.0",
"v5.19.1",
"v5.19.0",
"v5.18.0",
"v5.17.1",
"v5.17.0",
"v5.16.0",
"v5.15.2",
"v5.15.1",
"v5.15.0",
"v5.14.0",
"v5.13.0",
"v5.12.0",
"v5.11.0",
"v5.10.0",
"v5.9.1",
"v5.8.2",
"v5.8.1",
"v5.8.0",
"v5.7.0",
"v5.6.1",
"v5.6.0",
"v5.5.1",
"v5.5.0",
"v5.4.0",
"v5.3.0",
"v5.2.0",
"v5.1.1",
"v5.1.0",
"v5.0.0",
"v4.16.0",
"v4.15.1",
"v4.15.0",
"v4.14.1",
"v4.14.0",
"v4.13.0",
"v4.12.2",
"v4.12.0",
"v4.11.3",
"v4.11.2",
"v4.11.1",
"v4.11.0",
"v4.10.4",
"v4.10.3",
"v4.10.2",
"v4.10.1",
"v4.10.0",
"v4.9.5",
"v4.9.4",
"v4.9.3",
"v4.9.2",
"v4.9.1",
"v4.9.0",
"v4.8.2",
"v4.8.1",
"v4.8.0",
"v4.7.3",
"v4.7.2",
"v4.7.1",
"v4.7.0",
"v4.6.0",
"v4.5.1",
"v4.5.0",
"v4.4.7",
"v4.4.6",
"v4.4.5",
"v4.4.4",
"v4.4.3",
"v4.4.2",
"v4.4.1",
"v4.3.1",
"v4.3.0",
"v4.2.2",
"v4.2.1",
"v4.1.1",
"v4.1.0",
"v4.0.0",
"v4.0.0-rc.8",
"v4.0.0-rc.7",
"v4.0.0-rc.5",
"v4.0.0-rc.4",
"v4.0.0-rc.3",
"v4.0.0-rc.2",
"v4.0.0-rc.1",
"v4.0.0-alpha.5",
"v4.0.0-alpha.4",
"v4.0.0-alpha.2",
"v4.0.0-alpha.1",
"v4.0.0-alpha.0",
"v3.3.1",
"v3.3.0",
"v3.2.0",
"v3.1.0",
"v3.0.0",
"v2.1.0",
"v2.0.7",
"v2.0.6",
"v2.0.5",
"v2.0.4",
"v2.0.3",
"v2.0.2",
"v2.0.1",
"v2.0.0",
"v1.3.1",
"v1.3.0",
"v1.2.6",
"v1.2.5",
"v1.2.2",
"v1.2.1",
"v1.2.0",
"v1.1.0",
"v1.0.3",
"v1.0.2",
"v1.0.1",
"v1.0.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-15157.json"
}
}
],
"modified": "2026-10-28T02:30:46.661697592Z",
"provider": "osv",
"references": [
"https://cna.openjsf.org/security-advisories.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/15xxx/CVE-2026-15157.json",
"https://github.com/nodejs/undici/security/advisories/GHSA-m8rv-5g2x-5cg5",
"https://nvd.nist.gov/vuln/detail/CVE-2026-15157"
],
"provider_metadata": {
"cwe_ids": [
"CWE-93"
],
"cna_assigner": "openjs",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/15xxx/CVE-2026-15157.json"
}
},
"related_cves": [
{
"value": "CVE-2026-15157",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 514581,
"published_at": "2026-07-29T21:17:44.74+00:00"
}