
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-34831 is a Content-Length mismatch vulnerability in Rack's Rack::Files middleware, a modular Ruby web server interface. The flaw arises because Rack::Files#fail computes the Content-Length response header using String#size (character count) instead of String#bytesize (byte count), causing incorrect HTTP response framing when multibyte UTF-8 characters are present. Affected versions include Rack < 2.2.23, >= 3.0.0.beta1 and < 3.1.21, and >= 3.2.0 and < 3.2.6. The vulnerability was published on April 2, 2026, with a CVSS v3.1 base score of 4.8 (Moderate) (GitHub Advisory, Rack Advisory).
The root cause is classified under CWE-130 (Improper Handling of Length Parameter Inconsistency) and CWE-135 (Incorrect Calculation of Multi-Byte String Length). In Rack::Files#fail, the error response body is constructed and its length set via body.size.to_s, which returns the number of Unicode characters rather than the number of bytes — for multibyte UTF-8 strings, these values differ. Because Rack::Files reflects the decoded request path in 404 error responses, an unauthenticated attacker can craft a request to a non-existent path containing percent-encoded UTF-8 characters (e.g., /%C3%A9invalid), causing the server to emit a response body with more bytes than declared in Content-Length. This violates HTTP/1.1 message framing requirements and can cause response desynchronization in deployments using keep-alive connections or intermediary proxies that rely on Content-Length for message boundary detection (GitHub Advisory, Rack Advisory).
Successful exploitation may result in HTTP response desynchronization, where downstream proxies or clients misparse response boundaries, potentially leading to limited confidentiality impact (e.g., partial data leakage from response smuggling) and integrity impact (e.g., corrupted request/response handling). The vulnerability does not affect availability directly. Practical impact is highly dependent on deployment topology — environments using keep-alive connections with intermediaries (reverse proxies, load balancers, CDNs) that trust the Content-Length header are most at risk. Even in cases where secondary exploitation is not achievable, the malformed response may trigger protocol errors in strict HTTP components (GitHub Advisory).
There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time (Feedly). The vulnerability is remotely exploitable with no authentication or user interaction required, though attack complexity is rated High due to the dependency on specific deployment topologies (e.g., keep-alive connections with intermediaries). The EPSS score is approximately 0.043% (14th percentile), indicating a low near-term exploitation probability. The CVE is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.
Rack::Files and deployed behind a proxy or with HTTP keep-alive enabled.GET /%C3%A9%C3%A0%C3%BC/nonexistent HTTP/1.1.Rack::Files#fail computes Content-Length using String#size (character count), which is smaller than the actual byte count of the multibyte string.Content-Length for message framing, the extra bytes sent beyond the declared length are interpreted as the start of the next HTTP response, potentially causing response queue poisoning or data leakage to other clients sharing the connection (GitHub Advisory, Rack Advisory)./%C3%A9, /%E2%82%AC) in access logs; unexpected response parsing errors or connection resets logged by downstream proxies.Content-Length mismatches or framing errors on backend connections.Upgrade Rack to a patched version immediately: 2.2.23, 3.1.21, or 3.2.6, depending on the currently deployed branch. The fix replaces String#size with String#bytesize in Rack::Files#fail to correctly compute Content-Length. As interim workarounds, avoid exposing Rack::Files directly to untrusted traffic; place Rack behind a proxy or server that normalizes or rejects malformed backend responses; and prefer closing backend connections on error paths to prevent response framing anomalies from propagating. IBM has also released patches for affected products including Aspera Faspex, Aspera Enterprise WebApps, Aspera Shares, API Connect, CloudPak for AIOps, and License Metric Tool (GitHub Advisory, Rack Advisory).
The vulnerability was reported by researcher "Oblivionsage" and coordinated by Rack maintainer "ioquatix", with remediation review by "jeremyevans" (Rack Advisory). Ubuntu issued security notice USN-8182-1 and SUSE released updates (SUSE-SU-2026:1745-1 and SUSE-SU-2026:1964-1) addressing this and related Rack vulnerabilities. IBM published multiple security bulletins covering affected products. No significant social media discussion or broader media coverage has been identified for this moderate-severity issue.
Fix availability across major Linux distributions and their releases.
bookworm
ruby-rack: 2.2.22-0+deb12u2
sid
ruby-rack: 3.2.6-2
trixie
ruby-rack: 3.1.20-0+deb13u2
bionic (esm-apps)
ruby-rack
devel
ruby-rack
focal (esm-apps)
ruby-rack
jammy
ruby-rack
jammy (esm-apps)
ruby-rack: 2.1.4-5ubuntu1.2+esm3
noble
ruby-rack: 2.2.7-1ubuntu0.7
questing
ruby-rack: 3.1.16-0.1ubuntu0.3
resolute
ruby-rack
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."