
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-34786 is a security header bypass vulnerability in Rack, the modular Ruby web server interface, caused by a canonicalization mismatch in Rack::Static#applicable_rules. The flaw allows unauthenticated attackers to request URL-encoded variants of static file paths and receive those files without the security-relevant response headers that header_rules were intended to apply. Affected versions include Rack prior to 2.2.23, 3.0.0.beta1 through 3.1.20, and 3.2.0 through 3.2.5. The vulnerability was published on April 1–2, 2026, and has a CVSS v3.1 base score of 5.3 (Medium) (GitHub Advisory, Rack Advisory).
The root cause is classified as CWE-180 (Incorrect Behavior Order: Validate Before Canonicalize). Rack::Static#applicable_rules evaluates header_rules — including :fonts, Array, and Regexp rule types — against the raw, URL-encoded PATH_INFO, while the underlying file-serving logic decodes the path before serving the file. For example, a request to /fonts/test%2Ewoff (where %2E is the URL-encoded form of .) bypasses the regex match /.woff/ applied to the raw path, yet the file is still served because the path is decoded before disk lookup. This canonicalization mismatch means security headers configured via header_rules are silently omitted for encoded path variants. No public proof-of-concept exploit code has been identified (GitHub Advisory, Rack Advisory).
The primary impact is an integrity bypass: attackers can circumvent security-relevant HTTP response headers (e.g., X-Frame-Options for clickjacking defense, Content-Security-Policy, or other response policies) applied to static content via Rack::Static header_rules. There is no direct confidentiality or availability impact — the file itself is still served, but without the protective headers. The practical severity depends on which headers are configured via header_rules; deployments using these rules only for non-security purposes (e.g., caching) are minimally affected, while those relying on them for security controls face meaningful risk (Rack Advisory, GitHub Advisory).
No public proof-of-concept exploit code exists, and there is no evidence of in-the-wild exploitation at this time (GitHub Advisory). The vulnerability requires no authentication, no user interaction, and low attack complexity, making it trivially exploitable by any network-accessible attacker once a target is identified. The EPSS score is approximately 0.029–0.045%, placing it in the 14th percentile for exploitation likelihood within 30 days. The CVE is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.
Rack::Static with security-relevant header_rules configured.header_rules (e.g., /fonts/example.woff, /assets/style.css).. with %2E: /fonts/example%2Ewoff).Rack::Static#applicable_rules method fails to match the encoded path against configured header_rules, so the security headers are not applied.X-Frame-Options is bypassed) (Rack Advisory, GitHub Advisory).%2E instead of ., %2F instead of /) targeting known static asset directories such as /fonts/, /assets/, or /static/./fonts/test%2Ewoff) that return HTTP 200 responses, particularly if the same file is also accessible via its unencoded path.X-Frame-Options, Content-Security-Policy) in HTTP responses for static files when those headers are present for the unencoded path equivalents.Upgrade Rack to one of the patched versions: 2.2.23 (for the 2.2.x branch), 3.1.21 (for the 3.1.x branch), or 3.2.6 (for the 3.2.x branch). As a workaround prior to patching, avoid relying solely on Rack::Static header_rules for security-critical headers; instead, configure security headers at the reverse proxy or web server layer (e.g., nginx, Apache) where they apply consistently to both encoded and unencoded path forms. Additionally, consider normalizing or rejecting percent-encoded path variants for static content at the edge. IBM has issued advisories 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 coordinated and published by Rack maintainer ioquatix, with harukioya credited as the reporter and jeremyevans as the remediation reviewer (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 including Aspera Faspex, API Connect, and CloudPak for AIOps. No significant social media discussion or independent researcher commentary has been identified beyond standard vulnerability tracking.
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: 1.6.4-4ubuntu0.2+esm10
devel
ruby-rack
focal (esm-apps)
ruby-rack: 2.0.7-2ubuntu0.1+esm10
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."