Description
Rack is a modular Ruby web server interface. From 3.0 until 3.1.23 and 3.2.8, Rack::Request#host_with_port, #base_url, and #url can return an attacker-controlled invalid authority from Host, X-Forwarded-Host, or Forwarded: host= verbatim. Applications without an independent host allowlist that use these methods for absolute URLs, redirects, or origin-dependent checks can emit attacker-chosen delimiters, enabling redirect manipulation, string-based allowlist bypass, or unescaped markup reflection. Rails overrides these methods and is not expected to be affected. This issue is fixed in versions 3.1.23 and 3.2.8.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
rack rack
>= 3.0, < 3.1.23affected>= 3.2, < 3.2.8affected
References
- https://github.com/rack/rack/security/advisories/GHSA-2j8w-xcrc-x985 ↗
- https://github.com/rack/rack/commit/4380381a56dc52556a436d6d794c8e18dc8b0565 ↗
- https://github.com/rack/rack/commit/49386f460286b7346c7003b69a839de782cc8a39 ↗
- https://github.com/rack/rack/releases/tag/v3.1.23 ↗
- https://github.com/rack/rack/releases/tag/v3.2.8 ↗