Description
Active Storage allows users to attach cloud and local files in Rails applications. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, Active Storage's `DiskService#path_for` does not validate that the resolved filesystem path remains within the storage root directory. If a blob key containing path traversal sequences (e.g. `../`) is used, it could allow reading, writing, or deleting arbitrary files on the server. Blob keys are expected to be trusted strings, but some applications could be passing user input as keys and would be affected. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.
Problem types
CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Product status
>= 8.0.0.beta1, < 8.0.4.1
< 7.2.3.1
References
github.com/.../rails/security/advisories/GHSA-9xrj-h377-fr87
github.com/...ommit/4933c1e3b8c1bb04925d60347be9f69270392f2c
github.com/...ommit/9b06fbc0f504b8afe333f33d19548f3b85fbe655
github.com/...ommit/a290c8a1ec189d793aa6d7f2570b6a763f675348
github.com/rails/rails/releases/tag/v7.2.3.1
github.com/rails/rails/releases/tag/v8.0.4.1
github.com/rails/rails/releases/tag/v8.1.2.1