Sourced from rack's changelog.
Changelog
All notable changes to this project will be documented in this file. For info on how to format all future additions to this file please reference Keep A Changelog.
Unreleased
Security
- CVE-2025-61780 Improper handling of headers in
Rack::Sendfilemay allow proxy bypass.- CVE-2025-61919 Unbounded read in
Rack::Requestform parsing can lead to memory exhaustion.- CVE-2026-25500 XSS injection via malicious filename in
Rack::Directory.- CVE-2026-22860 Directory traversal via root prefix bypass in
Rack::Directory.SPEC Changes
- Define
rack.response_finishedcallback arguments more strictly. (#2365,@skipkayhil)Added
- Add
Rack::Files#assign_headersto allow overriding how the configured file headers are set. (#2377,@codergeek121)- Add support for
rack.response_finishedtoRack::TempfileReaper. (#2363,@skipkayhil)- Add support for streaming bodies when using
Rack::Events. (#2375,@unflxw)- Add
deflatersoption toRack::Deflaterto enable custom compression algorithms like zstd. (#2168,@alexanderadam)- Add
Rack::Request#prefetch?for identifying requests withSec-Purpose: prefetchheader set. (#2405,@glaszig)- Add
rack.request.trusted_proxyenvironment key to indicate whether the request is coming from a trusted proxy.Changed
- Raise before exceeding a part limit, not after. (#2362,
@matthew-puku)- Rack::Deflater now uses a fixed GZip mtime value. (#2372,
@bensheldon)- Multipart parser drops support for RFC 2231
filename*parameter (prohibited by RFC 7578) and now properly handles UTF-8 encoded filenames via percent-encoding and direct UTF-8 bytes. (#2398,@wtn)- The query parser now raises
Rack::QueryParser::IncompatibleEncodingErrorif we try to parse params that are not ASCII compatible. (#2416,@bquorning)Fixed
- Multipart parser: limit MIME header size check to the unread buffer region to avoid false
multipart mime part header too largeerrors when previously read data accumulates in the scan buffer. (#2392,@alpaca-tc,@willnet,@krororo)- Fix
Rack::MockResponse#bodywhen the body is a Proc. (#2420, #2423,@tavianator, [@ioquatix])[3.2.4] - 2025-11-03
Fixed
- Multipart parser: limit MIME header size check to the unread buffer region to avoid false
multipart mime part header too largeerrors when previously read data accumulates in the scan buffer. (#2392,@alpaca-tc,@willnet,@krororo)
bb5f355
Bump patch version.f9bde3b
Prevent directory traversal via root prefix bypass.93a68f5
XSS injection via malicious filename in
Rack::Directory.3b8b0d2
Fix MockResponse#body when the body is a Proc (#2420)4c24539
Bump patch version.3ba5e4f
Allow Multipart head to span read boundary. (#2392)