CVE-2026-34831

Medium

Description

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.

SeverityMedium
CVSS4.8
Exploit probability—
ProductRack
PublishedApr 2, 2026
First seenApr 2, 2026

How to fix

Update
  • rack rack2.2.23, 3.1.21, 3.2.6 or later

Affected products

ProductAffected versionsFixed in
rack rackv < 2.2.23, 3.0.0 ≤ v < 3.1.21, 3.2.0 ≤ v < 3.2.62.2.23, 3.1.21, 3.2.6

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.