GitHub
02/17/2026, 5:28 PM# 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 inmay allow proxy bypass.Rack::Sendfile
• CVE-2025-61919 Unbounded read inform parsing can lead to memory exhaustion.Rack::Request
• 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
• Definecallback arguments more strictly. (#2365, `@skipkayhil`)rack.response_finished
### Added
• Addto allow overriding how the configured file headers are set. (#2377, `@codergeek121`)Rack::Files#assign_headers
• Add support fortorack.response_finished. (#2363, `@skipkayhil`)Rack::TempfileReaper
• Add support for streaming bodies when using. (#2375, `@unflxw`)Rack::Events
• Addoption todeflatersto enable custom compression algorithms like zstd. (#2168, `@alexanderadam`)Rack::Deflater
• Addfor identifying requests withRack::Request#prefetch?header set. (#2405, `@glaszig`)Sec-Purpose: prefetch
• Addenvironment key to indicate whether the request is coming from a trusted proxy.rack.request.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 2231parameter (prohibited by RFC 7578) and now properly handles UTF-8 encoded filenames via percent-encoding and direct UTF-8 bytes. (#2398, `@wtn`)filename*
• The query parser now raisesif we try to parse params that are not ASCII compatible. (#2416, `@bquorning`)Rack::QueryParser::IncompatibleEncodingError
### Fixed
• Multipart parser: limit MIME header size check to the unread buffer region to avoid falseerrors when previously read data accumulates in the scan buffer. (#2392, `@alpaca-tc`, `@willnet`, `@krororo`)multipart mime part header too large
• FixCommits • `bb5f355` Bump patch version. • `f9bde3b` Prevent directory traversal via root prefix bypass. • `93a68f5` XSS injection via malicious filename inwhen the body is a Proc. (#2420, #2423, `@tavianator`, [`@ioquatix`])Rack::MockResponse#body
Rack::Directory.
• `3b8b0d2` Fix MockResponse#body when the body is a Proc (#2420)
• See full diff in compare view
[Dependabot compatibility score](https://camo.githubusercontent.com/69bcdd92d44895f09fc3d39e525f69c9c7a1acdd4ca6f40e78d8c351785de549/68747470733a2f2f646570656e6461626f742d6261646765732e6769746875626170702e636f6d2f6261646765732f636f6d7061746962696c6974795f73636f72653f646570656e64656e63792d6e616d653d7261636b267061636b6167652d6d616e616765723d62756e646c65722670726576696f75732d76657273696f6e3d332e322e34266e65772d76657273696f6e3d332e322e35)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
• @dependabot rebase will rebase this PR
• @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
• @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
• @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
• @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
• @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the Security Alerts page.
pact-foundation/pact-standaloneGitHub
02/23/2026, 3:52 PM