Skip to content
Heist/ feed
Back to feed
Medium

undici vulnerable to CRLF Injection via blob-like body 'type' property

Type: advisorySources: OSV

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 source

Published 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"
}