CVE-2026-34826: Denial of Service via Unbounded Range Count in Rack
Vulnerability ID: CVE-2026-34826
CVSS Score: 5.3
Published: 2026-04-02
CVE-2026-34826 is an uncontrolled resource consumption vulnerability in Rack's HTTP Range header parser, specifically within Rack::Utils.get_byte_ranges. By failing to limit the number of byte ranges processed in a single request, an unauthenticated attacker can induce a denial-of-service condition through CPU, memory, and I/O exhaustion. This issue affects multiple versions of the Rack web server interface and is fully patched in versions 2.2.23, 3.1.21, and 3.2.6.
TL;DR
Unbounded parsing of HTTP Range headers in Rack allows remote, unauthenticated attackers to cause a denial-of-service condition. By sending thousands of range segments in a single request, attackers exhaust server CPU, memory, and I/O resources during multipart MIME generation.
⚠️ Exploit Status: POC
Technical Details
- CWE ID: CWE-400, CWE-770
- Attack Vector: Network
- CVSS Score: 5.3
- Impact: Partial Availability
- Exploit Status: Proof of Concept
- KEV Status: Not Listed
Affected Systems
- Ruby on Rails applications using Rack
- Sinatra applications using Rack
- Any Ruby web framework utilizing Rack's static file serving components
-
Rack: < 2.2.23 (Fixed in:
2.2.23) -
Rack: >= 3.0.0.beta1, < 3.1.21 (Fixed in:
3.1.21) -
Rack: >= 3.2.0, < 3.2.6 (Fixed in:
3.2.6)
Code Analysis
Commit: 9138756
Limit the maximum number of byte ranges in Rack::Utils.get_byte_ranges
Mitigation Strategies
- Upgrade the Rack gem to a non-vulnerable release.
- Implement a WAF rule to drop HTTP requests containing more than 50 commas in the Range header.
- Configure web servers (e.g., Nginx, Apache) proxying to Rack to limit the maximum allowed size of HTTP headers.
Remediation Steps:
- Identify all applications utilizing the Rack library in the environment.
- Determine the current version of Rack in use via the Gemfile.lock.
- Update the Gemfile to specify a patched version (2.2.23, 3.1.21, or 3.2.6).
- Execute
bundle update rackto fetch and apply the updated dependency. - Deploy the application and verify that file serving functionality remains operational.
- Optionally, test the endpoint with the provided PoC curl command to ensure the server gracefully rejects the malicious request.
References
Read the full report for CVE-2026-34826 on our website for more details including interactive diagrams and full exploit analysis.
Top comments (0)