LOWCVSS v3.1 3.7Vulnerability

CVE-2026-125108

## Summary The guard added for CVE-2026-26961 (GHSA-vgpv-f759-9wx3), which rejects multipart requests with more than one `boundary` parameter, only inspects the part of the `Content-Type` header after the boundary it extracts. A `Content-Type` whose first `boundary` parameter is empty or begins with a quote, semicolon, or comma is skipped by the extraction pattern, so a second `boundary` parameter is accepted silently and Rack parses the body with a boundary that a conforming parser would not derive from the header. ## Details `Rack::Multipart::Parser.parse_boundary` extracts the boundary with a regular expression that uses a lazy prefix and a value class excluding `"`, `;`, and `,`. For a header such as `multipart/form-data; boundary=";boundary=AaB03x"` or `multipart/form-data; boundary=; boundary=AaB03x`, the pattern skips the first `boundary=` and anchors on the second, and the subsequent check for another `boundary=` in the remaining text finds nothing. Rack then uses `AaB03x`. RFC 9110 parses the first header as a single parameter whose value is `;boundary=AaB03x`, which is not a legal boundary under RFC 2046, so the only conformant outcome is rejection. Inspecting intermediaries that implement the standard grammar, such as ModSecurity, see a different boundary or no multipart body at all. The fix counts `boundary=` occurrences across the entire header value and rejects the request when there is more than one. ## Impact As with CVE-2026-26961, an attacker can craft a multipart request that a web application firewall or other inspecting proxy in front of a Rack application interprets differently from Rack, so form fields and file uploads reach the application without inspection. Rack itself grants no capability beyond that of a well-formed request with the same body. All supported versions, including 2.2, are affected. ## Mitigation * Update to a patched version of Rack. * Reject requests whose `Content-Type` contains more than one `boundary` parameter

Properties

Severity
low
Summary
Rack: Multipart boundary ambiguity guard in Rack::Multipart::Parser can be bypassed with a quoted boundary value, allowing WAF bypass
Nvd fetched at
2026-11-10T23:33:48.924589+00:00
Epss score
0.0024
Cvss severity
LOW
Cvss score
3.7
Retrieved at
2026-11-10T23:35:17+00:00
Ghsa published
2026-11-10T19:26:28Z
Source url
https://github.com/advisories/GHSA-p8x9-v4hv-2w4g
Ghsa updated
2026-11-10T19:26:30Z
Ghsa id
GHSA-p8x9-v4hv-2w4g
Last source
FIRST EPSS
Score
3.7
Cvss version
3.1
Cve id
CVE-2026-125108
Cvss vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
First seen by Signal
2026-11-10T03:20:43+00:00
Is ghsa only
false
Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
Published at
2026-11-09T22:18:41.963

Related Entities (3)

AFFECTS (1)

→[Software]rubygems/rack

HAS_WEAKNESS (1)

VULNERABLE_TO (1)

←[Software]rubygems/rack

Related research

Explore deeper with Ninja Signal's threat intelligence graph

CVE-2026-125108 (CVSS v3.1 3.7) — Ninja Signal Threat Intelligence | Ninja Signal