CVE-2026-125110: Rack: Rack::Static header_rules bypass via dot-segment normalization mismatch

Published Nov 9, 2026
·
Updated

Rack is a modular Ruby web server interface. Prior to 2.2.25, 3.1.23, and 3.2.8, Rack::Static serves a path after Utils.cleanpathinfo normalization but evaluates headerrules against a path that is only URL-decoded. An unauthenticated attacker can request a known file through raw or percent-encoded dot segments and receive it without path-specific security headers such as Content-Disposition or Content-Security-Policy. Applications that do not use path-specific headerrules are not affected. This issue is fixed in versions 2.2.25, 3.1.23, and 3.2.8.

Affected Software

1 affected component
rubygems/rack<2.2.25, <3.1.23, <3.2.8

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Rack to a version that resolves this vulnerability.

    Fixed in 2.2.25
  2. Upgrade

    Upgrade Rack to a version that resolves this vulnerability.

    Fixed in 3.1.23
  3. Upgrade

    Upgrade Rack to a version that resolves this vulnerability.

    Fixed in 3.2.8

Event History

Nov 9, 2026
CVE Published
via MITRE·10:00 PM
Data Sourced
via MITRE·10:00 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:18 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which deployments are affected?

Only applications using Rack::Static with path-specific header_rules are affected. Applications that do not use path-specific header_rules are not affected.

2

What does an attacker need to exploit this issue?

An attacker needs network access and knowledge of a file served by Rack::Static. No authentication or user interaction is required; the attacker requests the file using raw or percent-encoded dot segments.

3

What is the practical impact?

A matching static file can be served without its intended path-specific security headers, such as Content-Disposition or Content-Security-Policy. The issue affects header enforcement rather than confidentiality or availability according to the provided impact vector.

4

Which Rack versions contain the fix?

The issue is fixed in Rack 2.2.25, 3.1.23, and 3.2.8. Versions before those releases are affected when the application uses the vulnerable Rack::Static header_rules configuration.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203