Executive brief
Rack is a widely used interface for Ruby web applications that helps manage how web servers and applications communicate. A security flaw in its directory listing component allows an attacker to view files and folders outside of the intended directory. This could lead to the exposure of sensitive system information or configuration files if they share a similar name with the authorized folder.
Technical details
A directory traversal vulnerability exists in the `Rack::Directory` component of the Rack library. The root cause is an insufficient path validation check that uses a string prefix match (`start_with?`) on expanded paths without enforcing a proper directory boundary. An unauthenticated remote attacker can exploit this by sending a crafted request (e.g., `/../root_example/`) to access a directory that shares a name prefix with the configured root (e.g., accessing `/var/www/root_backup` when the root is `/var/www/root`). This allows for unauthorized directory listing and information disclosure. The issue is resolved in versions 2.2.22, 3.1.20, and 3.2.5.
Affected products
- Rack Rack < 2.2.22, >= 3.0.0.beta1, < 3.1.20, >= 3.2.0, < 3.2.5
- Red Hat 3scale API Management Platform 2 2
Timeline
- 2026-02-16: advisory: GitHub Security Advisory published
- 2026-02-18: disclosed: CVE-2026-22860 published
- 2026-02-18: patched: Fixes released in versions 2.2.22, 3.1.20, and 3.2.5
References
- https://github.com/rack/rack/commit/75c5745c286637a8f049a33790c71237762069e7
- https://github.com/rack/rack/security/advisories/GHSA-mxw3-3hh2-x2mh
- https://access.redhat.com/security/cve/CVE-2026-22860
- https://bugzilla.redhat.com/show_bug.cgi?id=2440737
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-22860.json