Ad

CVE-2026-34831

MEDIUM CVSS 3.1: 6.5 EPSS 0.04%
Updated Apr 16, 2026
Rack
Parameter Value
CVSS 6.5 (MEDIUM)
Affected Versions 3.0.0 — 3.2.6
Fixed In 2.2.23
Type CWE-130, CWE-135
Vendor Rack
Public PoC No

Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Files#fail sets the Content-Length response header using String#size instead of String#bytesize. When the response body contains multibyte UTF-8 characters, the declared Content-Length is smaller than the number of bytes actually sent on the wire.

Because Rack::Files reflects the requested path in 404 responses, an attacker can trigger this mismatch by requesting a non-existent path containing percent-encoded UTF-8 characters. This results in incorrect HTTP response framing and may cause response desynchronization in deployments that rely on the incorrect Content-Length value. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.

Attack Parameters

Attack Vector
Network
Can be exploited remotely
Attack Complexity
Low
Easy to exploit
Privileges Required
None
No privileges needed
User Interaction
None
No user interaction needed

Impact Assessment

Confidentiality
Low
Partial data leak
Integrity
Low
Partial data modification
Availability
None
No disruption

CVSS Vector v3.1

Weakness Type (CWE)

Vulnerable Products 3

Configuration From (including) Up to (excluding)
Rack Rack
cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*
2.2.23
Rack Rack
cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*
3.0.0 3.1.21
Rack Rack
cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*
3.2.0 3.2.6