Skip to main content
← All vulnerabilities
CVE-2026-25500GHSA-WHRJ-4476-WVMP

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 2.2.22, 3.1.20, 3.2.5
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • rack rack

    fixed in 2.2.22; From 3.0.0.beta1 · fixed in 3.1.20; From 3.2.0 · fixed in 3.2.5

  • rackRubyGems

    fixed in 2.2.22

  • rackRubyGems

    From 3.0.0.beta1 · fixed in 3.1.20

  • rackRubyGems

    From 3.2.0 · fixed in 3.2.5

References 2

GitHub · rack/rack