Description
Rack is a modular Ruby web server interface. From versions 3.0.0.beta1 to before 3.1.21 and 3.2.0 to before 3.2.6, Rack::Utils.forwarded_values parses the RFC 7239 Forwarded header by splitting on semicolons before handling quoted-string values. Because quoted values may legally contain semicolons, a header can be interpreted by Rack as multiple Forwarded directives rather than as a single quoted for value. In deployments where an upstream proxy, WAF, or intermediary validates or preserves quoted Forwarded values differently, this discrepancy can allow an attacker to smuggle host, proto, for, or by parameters through a single header value. This issue has been patched in versions 3.1.21 and 3.2.6.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| rack | rack | >= 3.0.0.beta1, < 3.1.21, >= 3.2.0, < 3.2.6 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | ruby-rack | 3.2.6-2 | — |
| Debian 13 | ruby-rack | 3.1.20-0+deb13u2 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | ruby-rack | 3.2.4-1ubuntu1.1 | USN-8989-1 |
| Ubuntu 25.10 | ruby-rack | 3.1.16-0.1ubuntu0.3 | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | kube-fluentd-operator | 1.18.2-r60 | — |
| Wolfi rolling | logstash-9.3 +2 | 9.3.3-r2 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | rack | >= 3.0.0.beta1, < 3.1.21 | 3.1.21 | GHSA-qfgr-crr9-7r49 |
| RubyGems | rack | >= 3.2.0, < 3.2.6 | 3.2.6 | GHSA-qfgr-crr9-7r49 |
Advisories 1
- USN-8989-1 ruby-rack vulnerabilities Ubuntu Security Notices (USN) · Nov 4, 2026