CVE-2026-22860: Rack has a Directory Traversal via Rack:Directory
Summary
Rack::Directory’s path check used a string prefix match on the expanded path. A request like /../rootexample/ can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root.
Details
In directory.rb, File.expandpath(File.join(root, pathinfo)).startwith?(root) does not enforce a path boundary. If the server root is /var/www/root, a path like /var/www/rootbackup passes the check because it shares the same prefix, so Rack::Directory will list that directory also.
Impact
Information disclosure via directory listing outside the configured root when Rack::Directory is exposed to untrusted clients and a directory shares the root prefix (e.g., public2, wwwbackup).
Mitigation
Update to a patched version of Rack that correctly checks the root prefix. Don't name directories with the same prefix as one which is exposed via Rack::Directory.
Other sources
Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20, and 3.2.5, Rack::Directory’s path check used a string prefix match on the expanded path. A request like /../rootexample/ can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root. Versions 2.2.22, 3.1.20, and 3.2.5 fix the issue.
— NVD
Affected Software
Remediation
Event History
Frequently Asked Questions
What is the severity of CVE-2026-22860?
CVE-2026-22860 is considered a high severity vulnerability due to its potential to allow directory listing outside the intended root.
How do I fix CVE-2026-22860?
To fix CVE-2026-22860, upgrade Rack to version 3.2.5, 3.1.20, or 2.2.22 or later.
What vulnerabilities are associated with CVE-2026-22860?
CVE-2026-22860 affects versions of Rack prior to 3.2.5, 3.1.20, and 2.2.22.
What is the impact of CVE-2026-22860?
The impact of CVE-2026-22860 can result in unauthorized access to files outside the intended directory structure.
Who is affected by CVE-2026-22860?
Developers and applications using vulnerable versions of the Rack library are affected by CVE-2026-22860.