CVE-2026-125108: Rack: Multipart boundary ambiguity guard in Rack::Multipart::Parser can be bypassed with a quoted boundary value, allowing WAF bypass
Rack is a modular Ruby web server interface. Prior to 2.2.25, 3.1.23, and 3.2.8, Rack::Multipart::Parser.parseboundary can skip a leading empty or quoted boundary parameter in a multipart Content-Type header and accept a later parameter. Rack can therefore parse a request body with a boundary that a conforming intermediary would not derive, allowing form fields or file uploads to reach an application without the intended proxy or web application firewall inspection. This issue is fixed in versions 2.2.25, 3.1.23, and 3.2.8.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rackto a version that resolves this vulnerability.Fixed in 2.2.25 - Upgrade
Upgrade
rackto a version that resolves this vulnerability.Fixed in 3.1.23 - Upgrade
Upgrade
rackto a version that resolves this vulnerability.Fixed in 3.2.8
Event History
Frequently Asked Questions
Which deployments are realistically exposed to this issue?
Deployments using Rack versions earlier than 2.2.25, 3.1.23, or 3.2.8 are affected when multipart requests pass through an intermediary such as a proxy or web application firewall that derives the multipart boundary differently from Rack.
What does an attacker need to exploit the bypass?
An attacker must be able to send a crafted multipart request with a Content-Type header containing a leading empty or quoted boundary parameter followed by another boundary parameter. No authentication or user interaction is required, but exploitation has high attack complexity.
What is the impact of a successful exploit?
Multipart form fields or file uploads can reach the application without the intended proxy or web application firewall inspection. The reported impact is limited to integrity; confidentiality and availability impacts are not indicated.
How can this be remediated?
Upgrade Rack to version 2.2.25, 3.1.23, or 3.2.8, as appropriate for the deployed release line.