CVE-2026-34829: Rack: Denial of Service via Unbounded Multipart File Upload Without Content-Length
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.
Security readout for executives and security teams
Plain-English summary
Rack applications that accept file uploads can be forced to write unlimited upload data to disk when requests omit Content-Length. An unauthenticated attacker could fill disk space and disrupt service. Fixed Rack versions are available.
Executive priority
Treat as high priority for internet-facing Ruby services with uploads. The impact is availability loss, not data theft, but disk exhaustion can cause broad application or host outage.
Technical view
Rack::Multipart::Parser only used BoundedIO when CONTENT_LENGTH was present. Multipart requests sent without Content-Length, including chunked transfer, could stream file parts to temporary files without a total size limit. Affected versions are before 2.2.23, 3.1.21, and 3.2.6.
Likely exposure
Ruby applications using affected Rack versions are exposed when they accept multipart/form-data uploads and allow requests without Content-Length through their frontend stack.
Exploitation context
The bundle does not show KEV listing or active exploitation. Exploitation requires network access to a Rack multipart endpoint and enough time or bandwidth to exhaust disk space.
Researcher notes
CVSS is 7.5 with network, low-complexity, unauthenticated availability impact. Mapped weaknesses are CWE-400 and CWE-770. Evidence supports Rack only; no other affected products or confirmed exploitation are stated in the bundle.
Mitigation direction
Upgrade Rack to 2.2.23, 3.1.21, 3.2.6, or later as applicable.
Check Rack and distributor guidance for backported fixes in packaged environments.
Apply request body and upload size limits at trusted ingress layers where supported.
Monitor temporary upload storage and alert on abnormal growth.
Prioritize externally reachable upload endpoints before internal-only services.
Validation and detection
Inventory deployed Rack versions across Ruby applications and containers.
Identify routes accepting multipart/form-data, especially unauthenticated upload paths.
Verify updated Rack versions or vendor-fixed packages are actually running.
Review ingress behavior for requests without Content-Length.
Check disk and temporary-directory telemetry for unexplained sustained growth.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-400: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
The CVE wording references file access or upload behavior, so file telemetry and web shell review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.