ActiveRecord::Tenanted::Storage::DiskService#path_for has a possible path traversal
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Fixed
No CVSS vector from any source. Fix status from GitHub.
Summary
### Summary Active Record Tenanted's override of 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. ### Mitigation Upgrade to Active Record Tenanted v0.7.0 or later. As a workaround, do not use untrusted user input as blob keys. Blob keys are expected to be trusted strings. ### Credit This issue was responsibly reported by @tonghuaroot.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | activerecord-tenanted (RubyGems) | before 0.7.0 | 0.7.0 | Patch available | GHSA-pmwx-rm49-xv39 |
- activerecord-tenanted (RubyGems) Vendor— Affected before 0.7.0 Fixed in 0.7.0 Patch available GHSA-pmwx-rm49-xv39
Remediation
- Fix · GHSA-pmwx-rm49-xv39 activerecord-tenanted (RubyGems) Fixed in 0.7.0 Advisory →
Timeline
- 2026-10-03 Threatist record created from GHSA-pmwx-rm49-xv39
References
Other 6
- https://github.com/basecamp/activerecord-tenanted/security/advisories/GHSA-pmwx-rm49-xv39
- https://github.com/rails/rails/security/advisories/GHSA-9xrj-h377-fr87
- https://github.com/basecamp/activerecord-tenanted/pull/307
- https://github.com/basecamp/activerecord-tenanted/commit/b242c8ad9bf58bbd7f5a032d153b0f29db54b9ba
- https://github.com/basecamp/activerecord-tenanted
- https://github.com/basecamp/activerecord-tenanted/releases/tag/v0.7.0
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences