Skip to main content

Rack CVE-2026-34829

| EUVDEUVD-2026-18388 HIGH
Uncontrolled Resource Consumption (CWE-400)
2026-04-02 security-advisories@github.com GHSA-8vqr-qjwx-82mw
7.5
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Send multipart/form-data request without Content-Length header
  2. Exploit
    Parser bypasses BoundedIO size limits
  3. Execution
    Stream unlimited data to temporary file
  4. Impact
    Exhaust disk space causing denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource consumption limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Remote unauthenticated attacker sending multipart/form-data requests WITHOUT Content-Length header (HTTP chunked transfer encoding) to Rack versions before 2.2.23, 3.1.21, 3.2.6. No victim interaction needed. Default configurations vulnerable.

Impact

Real-world risk is moderate-to-high for internet-facing Rack applications accepting file uploads. The CVSS vector (AV:N/AC:L/PR:N/UI:N) confirms this is remotely exploitable with low complexity and no authentication required, though impact is limited to availability (A:H). Attack execution is straightforward for any attacker capable of crafting HTTP requests with chunked encoding and omitting Content-Length headers. The absence of confirmed active exploitation (no CISA KEV listing) and lack of public proof-of-concept code reduce immediate urgency, but the attack primitive is trivial to implement using standard HTTP libraries. EPSS data not provided, but disk exhaustion DoS attacks are automatable and have clear technical impact. Primary risk factors include: prevalence of Rack in Ruby web stacks, ease of exploitation via standard HTTP features, and potential for persistent service disruption. Mitigation priority depends on application exposure and disk quota configurations-applications behind reverse proxies that enforce Content-Length or reject chunked uploads may have reduced exposure.

Exploit ScenarioDerived

An unauthenticated attacker identifies a publicly accessible Ruby web application accepting file uploads (customer portal, content management system, etc.). Using a standard HTTP client library configured for chunked transfer encoding, the attacker sends a multipart/form-data POST request without a Content-Length header, streaming gigabytes of arbitrary data as a file upload. The Rack parser writes this data directly to disk without enforcing size limits, rapidly exhausting available disk space on the server. Once disk capacity is consumed, the application and potentially co-hosted services fail, legitimate users cannot upload files or perform disk-dependent operations, and system logging ceases, creating a denial-of-service condition requiring manual intervention to restore service.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 02, 2026

Unbounded disk consumption in Rack's multipart parser allows remote denial of service when HTTP requests lack Content-Length headers. Rack versions prior to 2.2.23, 3.1.21, and 3.2.6 fail to enforce size limits on multipart/form-data uploads sent via chunked transfer encoding, enabling unauthenticated attackers to exhaust disk space by streaming arbitrarily large file uploads. CVSS 7.5 (High) reflects the network-accessible, low-complexity attack requiring no privileges. No public exploit identified at time of analysis, though the attack technique is well-understood.

RemediationAI

Upgrade Rack to patched versions immediately: version 2.2.23 for 2.x installations, version 3.1.21 for 3.1.x installations, or version 3.2.6 for 3.2.x and later installations. The patches add proper BoundedIO wrapping for chunked transfer-encoded multipart requests, enforcing existing size limits regardless of Content-Length presence. For Rails applications, update the Rack gem dependency in Gemfile and run bundle update rack. Temporary mitigations for environments unable to patch immediately include: configuring front-end web servers (nginx, Apache) to require Content-Length headers and reject chunked uploads, implementing disk quota enforcement at the OS level for temporary file directories, or using reverse proxy rules to enforce maximum request sizes before traffic reaches the Rack application. Consult the GitHub Security Advisory at https://github.com/rack/rack/security/advisories/GHSA-8vqr-qjwx-82mw for official vendor guidance.

Affected VersionsENISA

rack 3.2.0, < 3.2.6
rack 3.0.0.beta1, < 3.1.21
rack < 2.2.23

Affected Packages

rubygems rack fix: 2.2.23, 3.1.21, 3.2.6
euvd rack_3_0_0_beta1 fix: 3.1.21

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in rubygems, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Rack is a foundational Ruby web server interface used across the Ruby ecosystem (Rails, Sinatra, etc.). The vulnerability stems from Rack::Multipart::Parser's conditional application of the BoundedIO wrapper class. When processing multipart/form-data requests, the parser only enforces total size constraints if the CONTENT_LENGTH header is present. HTTP/1.1 chunked transfer encoding allows clients to send request bodies without declaring total size upfront, transmitting data in variable-length chunks. The parser writes file parts directly to temporary files on disk without size validation in chunked scenarios. This represents CWE-400 (Uncontrolled Resource Consumption) where missing input validation on an implicit constraint (total upload size) enables resource exhaustion. The flaw exists in the boundary detection logic that continues reading until stream termination rather than enforcing configurable upload limits.

Know when Rack gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (github) PRIMARY 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
SUSE HIGH
Red Hat 7.5 HIGH

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
Patch released
Apr 03, 2026 - 02:30 nvd
Patch available
CVE Published
Apr 02, 2026 - 17:16 nvd
HIGH 7.5

DescriptionCVE.org

Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Multipart::Parser only wraps the request body in a BoundedIO when CONTENT_LENGTH is present. When a multipart/form-data request is sent without a Content-Length header, such as with HTTP chunked transfer encoding, multipart parsing continues until end-of-stream with no total size limit. For file parts, the uploaded body is written directly to a temporary file on disk rather than being constrained by the buffered in-memory upload limit. An unauthenticated attacker can therefore stream an arbitrarily large multipart file upload and consume unbounded disk space. This results in a denial of service condition for Rack applications that accept multipart form data. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.

Executive ViewAI

Why It Matters

Rack versions prior to 2.2.23, 3.1.21, and 3.2.6 are vulnerable to unauthenticated denial-of-service attacks via unbounded multipart file uploads without Content-Length headers, allowing attackers to exhaust disk space and disrupt application availability. Organizations running affected Rack versions should prioritize immediate patching to prevent service outages and potential cascading infrastructure failures.

Business Impact: High
Compensating Controls

Implement rate limiting and request size limits at the HTTP server or reverse proxy layer (nginx/Apache) to restrict multipart uploads; configure disk space monitoring and alerts to detect rapid capacity exhaustion; disable chunked transfer encoding if operationally feasible until patching is complete.

Threat Intelligence Overview

EPSS Score
0.0%
Top 87% exploitable
Threat Intel
1
1 source
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Malicious file upload attacks exploit insufficient validation when web applications accept user-provided files.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Rack

View all
CVE-2026-22860 HIGH POC
7.5 Feb 18

Directory traversal in Rack versions prior to 2.2.22, 3.1.20, and 3.2.5 allows unauthenticated remote attackers to list

CVE-2024-26141 HIGH POC
7.5 Feb 29

Rack is a modular Ruby web server interface. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2024-25126 HIGH POC
7.5 Feb 29

Rack is a modular Ruby web server interface. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2020-8184 HIGH POC
7.5 Jun 19

A reliance on cookies without validation/integrity check security vulnerability exists in rack < 2.2.3, rack < 2.1.4 tha

CVE-2022-30123 CRITICAL
10.0 Dec 05

A sequence injection vulnerability exists in Rack <2.0.9.1, <2.1.4.1 and <2.2.3.1 which could allow is a possible shell

CVE-2025-25184 MEDIUM POC
5.7 Feb 12

Rack provides an interface for developing web applications in Ruby. Rated medium severity (CVSS 5.7), this vulnerability

CVE-2026-25500 MEDIUM POC
5.4 Feb 18

Rack's Directory module fails to sanitize filenames when generating HTML directory listings, allowing attackers to craft

CVE-2026-39324 CRITICAL
9.3 Apr 07

Session authentication bypass in Rack::Session::Cookie 2.0.0 through 2.1.1 allows unauthenticated remote attackers to fo

CVE-2020-8161 HIGH
8.6 Jul 02

A directory traversal vulnerability exists in rack < 2.2.0 that allows an attacker perform directory traversal vulnerabi

CVE-2013-0263 MEDIUM
5.1 Feb 08

Rack::Session::Cookie in Rack 1.5.x before 1.5.2, 1.4.x before 1.4.5, 1.3.x before 1.3.10, 1.2.x before 1.2.8, and 1.1.x

CVE-2023-27530 HIGH
7.5 Mar 10

A DoS vulnerability exists in Rack <v3.0.4.2, <v2.2.6.3, <v2.1.4.3 and <v2.0.9.3 within in the Multipart MIME parsing co

CVE-2025-61772 HIGH
7.5 Oct 07

Memory exhaustion denial of service in the Ruby Rack web server interface (versions prior to 2.2.19, 3.1.17, and 3.2.2)

Vendor StatusVendor

SUSE

Severity: High
Product Status
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 16.1 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy