Relative Path Traversal
CVE-2025-27610
Summary
Rack provides an interface for developing web applications in Ruby. In versions prior to 2.2.13, 3.0.x prior to 3.0.14, and 3.1.x prior to 3.1.12, `Rack::Static` can serve files under the specified `root:` even if `urls:` are provided, which may expose other files under the specified `root:` unexpectedly. The vulnerability occurs because `Rack::Static` does not properly sanitize user-supplied paths before serving files. Specifically, encoded path traversal sequences are not correctly validated, allowing attackers to access files outside the designated static file directory. By exploiting this vulnerability, an attacker can gain access to all files under the specified `root:` directory, provided they are able to determine the path of the file. Other mitigations include removing the usage of `Rack::Static`, or ensuring that `root:` points to a directory path that only contains files that should be accessed publicly. It is likely that a CDN or similar static file server would also mitigate the issue.
- LOW
- NETWORK
- NONE
- UNCHANGED
- NONE
- NONE
- HIGH
- NONE
CWE-23 - Relative Path Traversal
The software uses external input to construct a pathname that should be within a restricted directory, but it does not properly neutralize sequences such as ".." that can resolve to a location that is outside of that directory.
References
Advisory Timeline
- Published