Read the docs
TI-2026-20611 Aliases CVE-2026-25500GHSA-whrj-4476-wvmp

Rack's Stored XSS in Rack::Directory via javascript: filenames rendered into anchor href

Priority LOW 24CWE-79Published · Updated

Key facts

Attack vector
Network
Privileges required
Low
User interaction
Required
Attack complexity
Low
Impact type
Cross-site scripting
Confidentiality · integrity · availability
Low · Low · None
Fix status
Partial Red Hat: 6 without a fix

Attack profile from CVSS 3.1 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-79.

Summary

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00269 19th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial rack (rack): 2.2.22, 3.1.20, 3.2.5rack (RubyGems): 2.2.22, 3.1.20, 3.2.5Red Hat: 6 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
rackrackbefore 2.2.22; 3.0.0.beta1 to before 3.1.20; 3.2.0 to before 3.2.52.2.22, 3.1.20, 3.2.5Patch availableCNA
—rack (RubyGems)before 2.2.222.2.22Patch availableGHSA-whrj-4476-wvmp
—rack (RubyGems)3.0.0.beta1 to before 3.1.203.1.20Patch availableGHSA-whrj-4476-wvmp
—rack (RubyGems)3.2.0 to before 3.2.53.2.5Patch availableGHSA-whrj-4476-wvmp
  • rack Vendorrack Affected before 2.2.22; 3.0.0.beta1 to before 3.1.20; 3.2.0 to before 3.2.5 Fixed in 2.2.22, 3.1.20, 3.2.5 Patch available CNA
  • rack (RubyGems) Vendor— Affected before 2.2.22 Fixed in 2.2.22 Patch available GHSA-whrj-4476-wvmp
  • rack (RubyGems) Vendor— Affected 3.0.0.beta1 to before 3.1.20 Fixed in 3.1.20 Patch available GHSA-whrj-4476-wvmp
  • rack (RubyGems) Vendor— Affected 3.2.0 to before 3.2.5 Fixed in 3.2.5 Patch available GHSA-whrj-4476-wvmp

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:*before 2.2.22; 3.0.0 to before 3.1.20; 3.2.0 to before 3.2.5Vulnerablerack
  • cpe:2.3:a:rack:rack:*:*:*:*:*:ruby:*:* Versions before 2.2.22; 3.0.0 to before 3.1.20; 3.2.0 to before 3.2.5 Vulnerable ·rack

Remediation

  • Fix · CNA rack (rack) Fixed in 2.2.22, 3.1.20, 3.2.5
  • Fix · GHSA-whrj-4476-wvmp rack (RubyGems) Fixed in 2.2.22 Advisory →
  • Fix · GHSA-whrj-4476-wvmp rack (RubyGems) Fixed in 3.1.20 Advisory →
  • Fix · GHSA-whrj-4476-wvmp rack (RubyGems) Fixed in 3.2.5 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Logging Subsystem for Red Hat OpenShiftAffectedNo fix yet: Fix deferred
Red Hat 3scale API Management Platform 2AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 10AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 7AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 8AffectedNo fix yet: Fix deferred
Red Hat Enterprise Linux 9AffectedNo fix yet: Fix deferred
Not affected: 1 product
  • Red Hat Satellite 6

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-25500
  2. 2026-10-03 Alias added: GHSA-whrj-4476-wvmp

References

  • TI-2024-16580 Rack ReDos in content type parsing (2nd degree polynomial) CVSS 3.1HIGH 7.5
  • TI-2024-17236 Possible Denial of Service Vulnerability in Rack Header Parsing CVSS 3.1HIGH 7.5
  • TI-2024-17231 Possible DoS Vulnerability with Range Header in Rack CVSS 3.1HIGH 7.5
  • TI-2023-12254 Uncontrolled resource consumption in https://github.com/rack/rack CVSS 3.1HIGH 7.5
  • TI-2025-38165 Rack's multipart parser buffers unbounded per-part headers, enabling DoS (memory exhaustion) CVSS 3.1HIGH 7.5
  • TI-2025-38163 Rack's unbounded multipart preamble buffering enables DoS (memory exhaustion) CVSS 3.1HIGH 7.5
See all 36 →

Sources