Description
Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20, and 3.2.5, `Rack::Directory` generates an HTML directory index where each file entry is rendered as a clickable link. If a file exists on disk whose basename starts with the `javascript:` scheme (e.g. `javascript:alert(1)`), the generated index contains an anchor whose `href` is exactly `javascript:alert(1)`. Clicking the entry executes JavaScript in the browser (demonstrated with `alert(1)`). Versions 2.2.22, 3.1.20, and 3.2.5 fix the issue.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| rack | rack | < 2.2.22, >= 3.0.0.beta1, < 3.1.20, >= 3.2.0, < 3.2.5 | — |
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.5-1 | — |
| Debian 13 | ruby-rack | 3.1.20-0+deb13u1 | DSA-6180-1 |
| Debian 12 | ruby-rack | 2.2.22-0+deb12u1 | DSA-6180-1 |
| Debian 11 | ruby-rack | 2.1.4-3+deb11u5 | DLA-4505-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | ruby-rack | 3.2.4-1ubuntu1 | — |
| Ubuntu 26.04 LTS | ruby-rack | 3.2.4-1ubuntu1 | — |
| Ubuntu 25.10 | ruby-rack | 3.1.16-0.1ubuntu0.2 | — |
| Ubuntu 24.04 LTS | ruby-rack | 2.2.7-1ubuntu0.6 | — |
Show 5 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 22.04 LTS | ruby-rack | 2.1.4-5ubuntu1.2+esm2 | — |
| Ubuntu Pro 20.04 LTS | ruby-rack | 2.0.7-2ubuntu0.1+esm9 | — |
| Ubuntu Pro 18.04 LTS | ruby-rack | No fix yet | — |
| Ubuntu Pro 16.04 LTS | ruby-rack | No fix yet | — |
| Ubuntu Pro 14.04 LTS | ruby-rack | No fix yet | — |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Tumbleweed | rubygem-rack-2.2 | 2.2.22-1.1 | openSUSE-SU-2026:10286-1 |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | kube-fluentd-operator | 1.18.2-r60 | — |
| Wolfi rolling | logstash-9.3 +2 | 9.3.1-r1 | — |
| Wolfi rolling | ruby3.2-rack-2.2 +3 | 2.2.22-r0 | — |
| Wolfi rolling | ruby3.2-rails-8.1 +2 | 8.1.2-r1 | — |
| Wolfi rolling | ruby3.3-rails-8.1 | 8.1.2-r2 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | rack | < 2.2.22 | 2.2.22 | GHSA-whrj-4476-wvmp |
| RubyGems | rack | >= 3.0.0.beta1, < 3.1.20 | 3.1.20 | GHSA-whrj-4476-wvmp |
| RubyGems | rack | >= 3.2.0, < 3.2.5 | 3.2.5 | GHSA-whrj-4476-wvmp |
Advisories 4
- WID-SEC-2026-0881 IBM License Metric Tool: Mehrere Schwachstellen BSI CERT-Bund (WID) · Mar 26, 2026
- DSA-6180-1 ruby-rack - security update Debian Security (DSA / DLA) · Mar 26, 2026
- openSUSE-SU-2026:10286-1 ruby4.0-rubygem-rack-2.2-2.2.22-1.1 on GA media SUSE / openSUSE Security Updates · Mar 23, 2026
- DLA-4505-1 ruby-rack - security update Debian Security (DSA / DLA) · Mar 23, 2026