Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Oct 7, 2025

This PR contains the following updates:

Package Change Age Confidence
rack (changelog) '>= 2.0', '< 3.0' -> '>= 2.0', '< 3.2.5' age confidence

Release Notes

rack/rack (rack)

v3.2.4

Compare Source

Fixed
  • Multipart parser: limit MIME header size check to the unread buffer region to avoid false multipart mime part header too large errors when previously read data accumulates in the scan buffer. (#​2392, @​alpaca-tc, @​willnet, @​krororo)

v3.2.3

Compare Source

v3.2.2

Compare Source

Security
  • CVE-2025-61772 Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)
  • CVE-2025-61771 Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)
  • CVE-2025-61770 Unbounded multipart preamble buffering enables DoS (memory exhaustion)

v3.2.1

Compare Source

Added
Fixed
  • Fix an issue where a NoMethodError would be raised when using Rack::Events with streaming bodies. (#​2375, @​unflxw)

v3.2.0

Compare Source

This release continues Rack's evolution toward a cleaner, more efficient foundation while maintaining backward compatibility for most applications. The breaking changes primarily affect deprecated functionality, so most users should experience a smooth upgrade with improved performance and standards compliance.

SPEC Changes
Added
  • Introduce Rack::VERSION constant. (#​2199, [@​ioquatix])
  • ISO-2022-JP encoded parts within MIME Multipart sections of an HTTP request body will now be converted to UTF-8. (#​2245, @​nappa)
  • Add Rack::Request#query_parser= to allow setting the query parser to use. (#​2349, [@​jeremyevans])
  • Add Rack::Request#form_pairs to access form data as raw key-value pairs, preserving duplicate keys. (#​2351, [@​matthewd])
Changed
Deprecated
  • Rack::Auth::AbstractRequest#request is deprecated without replacement. (#​2229, [@​jeremyevans])
  • Rack::Request#parse_multipart (private method designed to be overridden in subclasses) is deprecated without replacement. (#​2229, [@​jeremyevans])
Removed
Fixed
  • Rack::RewindableInput::Middleware no longer wraps a nil input. (#​2259, @​tt)
  • Fix NoMethodError in Rack::Request#wrap_ipv6 when x-forwarded-host is empty. (#​2270, @​oieioi)
  • Fix the specification for SERVER_PORT which was incorrectly documented as required to be an Integer if present - it must be a String containing digits only. (#​2296, [@​ioquatix])
  • SERVER_NAME and HTTP_HOST are now more strictly validated according to the relevant specifications. (#​2298, [@​ioquatix])
  • Rack::Lint now disallows PATH_INFO="" SCRIPT_NAME="". (#​2298, [@​jeremyevans])

v3.1.19

Compare Source

Fixed
  • Multipart parser: limit MIME header size check to the unread buffer region to avoid false multipart mime part header too large errors when previously read data accumulates in the scan buffer. (#​2392, @​alpaca-tc, @​willnet, @​krororo)

v3.1.18

Compare Source

v3.1.17

Compare Source

Security
  • CVE-2025-61772 Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)
  • CVE-2025-61771 Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)
  • CVE-2025-61770 Unbounded multipart preamble buffering enables DoS (memory exhaustion)

v3.1.16

Compare Source

Security

v3.1.15

Compare Source

v3.1.14

Compare Source

⚠️ This release includes a security fix that may cause certain routes in previously working applications to fail if query parameters exceed 4,096 in count or 4 MB in total size. See https://redirect.github.com/rack/rack/discussions/2356 for more details.

Security
  • CVE-2025-46727 Unbounded parameter parsing in Rack::QueryParser can lead to memory exhaustion.

v3.1.13

Compare Source

v3.1.12

Compare Source

Security

v3.1.11

Compare Source

Security

v3.1.10

Compare Source

Security

v3.1.9

Compare Source

Fixed

v3.1.8

Compare Source

Fixed

v3.1.7

Compare Source

Fixed

v3.1.6

Compare Source

Fixed
  • Fix several edge cases in Rack::Request#parse_http_accept_header's implementation. (#​2226, [@​ioquatix])

v3.1.5

Compare Source

Security

v3.1.4

Compare Source

Fixed

v3.1.3

Compare Source

Fixed

v3.1.2

Compare Source

v3.1.1

Compare Source

Security
  • CVE-2025-61772 Multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion)
  • CVE-2025-61771 Multipart parser buffers large non‑file fields entirely in memory, enabling DoS (memory exhaustion)
  • CVE-2025-61770 Unbounded multipart preamble buffering enables DoS (memory exhaustion)

v3.1.0

Compare Source

⚠️ This release includes several breaking changes. Refer to the Removed section below for the list of deprecated methods that have been removed in this release.

This release is primarily a maintenance release that removes features deprecated in Rack v3.0. Alongside these removals, there are several improvements to the Rack SPEC, mainly focused on enhancing input and output handling. These changes aim to make Rack more efficient and align better with the requirements of server implementations and relevant HTTP specifications.

SPEC Changes
Added
Changed
  • MIME type for JavaScript files (.js) changed from application/javascript to text/javascript (1bd0f15, [@​ioquatix])
  • Update MIME types associated to .ttf, .woff, .woff2 and .otf extensions to use mondern font/* types. (#​2065, [@​davidstosik])
  • Rack::Utils.escape_html is now delegated to CGI.escapeHTML. ' is escaped to #&#8203;39; instead of #x27;. (decimal vs hexadecimal) (#​2099, @​JunichiIto)
  • Clarify use of @buffered and only update content-length when Rack::Response#finish is invoked. (#​2149, [@​ioquatix])
Deprecated
  • Deprecate automatic cache invalidation in Request#{GET,POST} (#​2073, [@​jeremyevans])
  • Only cookie keys that are not valid according to the HTTP specifications are escaped. We are planning to deprecate this behaviour, so now a deprecation message will be emitted in this case. In the future, invalid cookie keys may not be accepted. (#​2191, [@​ioquatix])
  • Rack::Logger is deprecated. (#​2197, [@​ioquatix])
  • Add fallback lookup and deprecation warning for obsolete status symbols. (#​2137, @​wtn)
  • Deprecate Rack::Request#values_at, use request.params.values_at instead (#​2183, [@​ioquatix])
Removed
  • Remove deprecated Rack::Auth::Digest with no replacement. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::Cascade::NotFound with no replacement. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::Chunked with no replacement. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::File, use Rack::Files instead. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::QueryParser key_space_limit parameter with no replacement. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::Response#header, use Rack::Response#headers instead. (#​1966, [@​ioquatix])
  • Remove deprecated cookie methods from Rack::Utils: add_cookie_to_header, make_delete_cookie_header, add_remove_cookie_to_header. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::Utils::HeaderHash. (#​1966, [@​ioquatix])
  • Remove deprecated Rack::VERSION, Rack::VERSION_STRING, Rack.version, use Rack.release instead. (#​1966, [@​ioquatix])
  • Remove non-standard status codes 306, 509, & 510 and update descriptions for 413, 422, & 451. (#​2137, @​wtn)
  • Remove any dependency on transfer-encoding: chunked. (#​2195, [@​ioquatix])
  • Remove deprecated Rack::Request#[], use request.params[key] instead (#​2183, [@​ioquatix])
Fixed

v3.0.18

Compare Source

v3.0.17

Compare Source

v3.0.16

Compare Source

⚠️ This release includes a security fix that may cause certain routes in previously working applications to fail if query parameters exceed 4,096 in count or 4 MB in total size. See https://redirect.github.com/rack/rack/discussions/2356 for more details.

Security
  • CVE-2025-46727 Unbounded parameter parsing in Rack::QueryParser can lead to memory exhaustion.

v3.0.15

Compare Source

v3.0.14

Compare Source

Security

v3.0.13

Compare Source

Security
Fixed

v3.0.12

Security

v3.0.11

v3.0.10

Compare Source

v3.0.9.1

Compare Source

Security

v3.0.9

Compare Source

Security

v3.0.8

Compare Source

v3.0.7

Compare Source

v3.0.6.1

Compare Source

Security

v3.0.6

Compare Source

Security

v3.0.5

Compare Source

v3.0.4.2

Compare Source

Security
  • [CVE-2023-27530] Introduce multipart_total_part_limit to limit total parts

v3.0.4.1

Compare Source

Security

v3.0.4

Compare Source

Security
  • [CVE-2023-27530] Introduce multipart_total_part_limit to limit total parts

v3.0.3

Compare Source

Fixed

v3.0.2

Compare Source

Fixed
  • Utils.build_nested_query URL-encodes nested field names including the square brackets.
  • Allow Rack::Response to pass through streaming bodies. (#​1993, [@​ioquatix])

v3.0.1

Compare Source

v3.0.0

Compare Source

This release introduces major improvements to Rack, including enhanced support for streaming responses, expanded protocol handling, and stricter compliance with HTTP standards. It refines middleware interfaces, improves multipart and hijack handling, and strengthens security and error reporting. The update also brings performance optimizations, better compatibility with modern Ruby versions, and numerous bug fixes, making Rack more robust and flexible for web application development.

  • No changes

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/rack-3.x branch from 7b6d304 to 6f96310 Compare October 10, 2025 01:38
@renovate renovate bot changed the title chore(deps): update dependency rack to '>= 2.0', '< 3.2.3' chore(deps): update dependency rack to '>= 2.0', '< 3.2.4' Oct 10, 2025
@renovate renovate bot force-pushed the renovate/rack-3.x branch from 6f96310 to 2b042ad Compare November 2, 2025 13:45
@renovate renovate bot changed the title chore(deps): update dependency rack to '>= 2.0', '< 3.2.4' chore(deps): update dependency rack to '>= 2.0', '< 3.2.5' Nov 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant