CVE-2026-15157

Aliases:UBUNTU-CVE-2026-15157DEBIAN-CVE-2026-15157GHSA-m8rv-5g2x-5cg5CGA-35j8-38pp-5vj7CGA-4rqg-228w-jc68CGA-52x3-r54r-c9pwCGA-5ggw-jhrm-g9jgCGA-64wf-hw6h-6x9fCGA-6h3g-xrqr-hxx2CGA-7xc8-4wr6-wj7jCGA-8h3v-8mj4-j4p4CGA-9j4q-4p64-v96fCGA-9wp7-5v4h-m3hqCGA-cvq9-hq52-c66wCGA-fcw4-ggmj-537gCGA-g66r-366x-9qp6CGA-g96w-h9pj-j289CGA-h438-6mpc-2738CGA-hjw4-5v86-8g6vCGA-j2p3-mxxh-6qhcCGA-m597-853x-8m4fCGA-mvff-q6vr-f635CGA-2pmg-hxx9-vx4wCGA-2q4f-jgvx-w75rCGA-2xrv-w4p3-j7c8CGA-3248-gq3v-qcfwCGA-35g6-c982-hv6wCGA-3gmp-24jh-xwwrCGA-3q54-h97c-vxf2CGA-47c2-pjrh-mqc6CGA-47m7-88x3-2x6mCGA-5hcg-7m8p-29w2CGA-74hj-q2qc-8h5wCGA-75rh-g7gf-8hpqCGA-9q6f-x97x-pwq8CGA-9x8q-9gfq-32c4CGA-c444-pg5j-mcr8CGA-c83g-hvcc-f33fCGA-fgq8-5x38-4g72CGA-gpx4-3qp6-x8qgCGA-hrq7-v9m4-g2qjCGA-j26p-h973-x23pCGA-j6vp-fvwx-386jCGA-jcwx-7w84-78ggCGA-m2c3-wrc8-5r2xCGA-m82x-cpj8-55x7CGA-mg5q-8qjx-gqfpCGA-mphq-fvv5-r77vCGA-mqc7-8pc9-qqg8CGA-p22h-f5xw-w2jpCGA-phj5-wwrg-r2mrCGA-q3q5-9hwm-c9c2CGA-qrx5-xp4g-gv4pCGA-qxxv-7v5v-3748CGA-rr4m-349c-5hchCGA-rr7p-fwhw-p3c8CGA-vmph-vgwq-p3rgCGA-vrhc-rvcc-rcfqCGA-wcv2-3jfp-xqqqCGA-whrr-p5pr-9rpgCGA-wpg7-6494-9rqrCGA-wqfr-p79g-xh3jCGA-x26w-7j9q-c2mmCGA-x4r3-rpgm-59ghCGA-x4r9-5vjh-7hr6CGA-x5q6-69mr-vf67CGA-x5rx-fhgm-c7xgCGA-xq86-j3mw-4j2pCGA-xvjw-fh2w-m7g3CGA-587r-r4h8-fhqxCGA-7984-84x2-c2mpCGA-frr6-3p2p-7558CGA-pgp8-r2r8-fxhvCGA-5gvg-jrqj-h58rCGA-7cmq-4ch4-m9jcCGA-6r6p-49m3-hmjxCGA-73p2-7pc9-j8cmCGA-j2cf-mhf6-9wqcCGA-jh48-9jp5-2r25CGA-hx93-9446-mq6pCGA-r7pj-x3w6-9m53
Advisory lineage Upstream: 0 Downstream: 4
Analyzed
Published: 29 Jul 2026, 21:17
Last modified:30 Jul 2026, 15:18

Vulnerability Summary

Overall Risk (default)
low
22/100
CVSS Score
5.4 MEDIUM
v3.1 (nvd)
EPSS Score
0.19% LOW
0% probability 0.00%
KEV
Not listed
Ransomware
No reports
Public exploits
None found
Dark Web
Not detected

Timeline

29 Jul 2026, 21:17
Published
Vulnerability first disclosed
30 Jul 2026, 15:18
Last Modified
Vulnerability information updated

Description

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.

CVSS Metrics

  • v3.1MEDIUMScore: 4.2CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N
  • v3.1MEDIUMScore: 5.4CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N

EPSS Trends

Current EPSS score: 0.19% Percentile: 9%

Techniques & Countermeasures

  • CWE-93Improper Neutralization of CRLF Sequences ('CRLF Injection')

    The product uses CRLF (carriage return line feeds) as a special element, e.g. to separate lines or records, but it does not neutralize or incorrectly neutralizes CRLF sequences from inputs.

Affected Systems

  • chainguardactions-runner

    < 2.336.0-r5

  • chainguardcode-server

    < 4.130.0-r5

  • chainguardcommercial-gitlab-rails-ee-19.1

    all

  • chainguardcommercial-gitlab-rails-ee-19.2

    all

  • chainguardcommercial-gitlab-rails-ee-19.3

    all

  • chainguardcommercial-gitlab-rails-ee-fips-19.1

    all

  • chainguardcommercial-gitlab-rails-ee-fips-19.2

    all

  • chainguardcommercial-gitlab-rails-ee-fips-19.3

    all

  • chainguardkibana-8.19

    < 8.19.20-r2

  • chainguardkibana-8.19-bitnami

    < 8.19.20-r2

  • chainguardkibana-8.19-iamguarded

    < 8.19.20-r2

  • chainguardkibana-9.1

    all

  • chainguardkibana-9.1-iamguarded

    all

  • chainguardkibana-9.2

    < 9.2.8-r19

  • chainguardkibana-9.2-iamguarded

    < 9.2.8-r19

  • chainguardkibana-9.3

    all

  • chainguardkibana-9.3-iamguarded

    all

  • chainguardlangfuse-3

    < 3.225.0-r3

  • chainguardlangfuse-3-compat

    < 3.225.7-r6

  • chainguardlangfuse-3-worker

    < 3.225.0-r3

  • chainguardlangfuse-4

    < 4.3.1-r3

  • chainguardlangfuse-4-worker

    < 4.3.1-r3

  • chainguardlangfuse-fips-3

    < 3.224.3-r9

  • chainguardlangfuse-fips-3-worker

    < 3.224.3-r9

  • chainguardlangfuse-fips-4

    < 4.4.0-r0

  • chainguardlangfuse-fips-4-worker

    < 4.4.0-r0

  • chainguardnpm-12

    < 12.0.2-r2

  • chainguardpelias-api

    < 7.8.0-r7

  • chainguardprism

    < 5.16.0-r2

  • chainguardpulumi-language-nodejs

    < 3.256.0-r1

  • chainguardrenovate

    < 44.23.3-r1 | < 44.11.3-r0 | < 44.11.4-r0

  • chainguardsaf

    < 1.7.0-r0

  • chainguardvitess-24

    < 24.0.2-r10

  • chainguardvitess-24-compat

    < 24.0.3-r7

  • wolficode-server

    < 4.130.0-r5

  • wolfilangfuse-3

    < 3.225.0-r3

  • wolfilangfuse-3-compat

    < 3.225.7-r6

  • wolfilangfuse-3-worker

    < 3.225.0-r3

  • wolfinpm-12

    < 12.0.2-r2

  • wolfiprism

    < 5.16.0-r2

  • wolfipulumi-language-nodejs

    < 3.256.0-r1

  • wolfirenovate

    < 44.23.3-r1 | < 44.11.3-r0 | < 44.11.4-r0

  • wolfisaf

    < 1.7.0-r0

  • wolfivitess-24

    < 24.0.2-r10

  • wolfivitess-24-compat

    < 24.0.3-r7

  • debiannode-undici

    all | all | < 8.9.0+dfsg+~cs3.2.0-1

  • ubuntunode-undici

    all | all

  • nodejsundici

    < 6.28.0 | ≥ 7.0.0, < 7.29.0 | ≥ 8.0.0, < 8.9.0

  • Npmundici

    < 6.28.0 | ≥ 7.0.0, < 7.29.0 | ≥ 8.0.0, < 8.9.0

  • undiciundici

    < 6.28.0 | ≥ 7.0.0, < 7.29.0 | ≥ 8.0.0, < 8.9.0

References (14)