Skip to content
Fencer Vulns
low —

GHSA-pmwx-rm49-xv39 json

ActiveRecord::Tenanted::Storage::DiskService#path_for has a possible path traversal

published 2026-07-29 3 mo ago modified 2026-07-29 3 mo ago

cvss
—
not scored
cisa kev
Not listed
not in CISA's catalog
epss
—
no score, EPSS covers CVEs only
public exploits
0
none known

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.

Patch / fix

Affected packages

ecosystem package affected fixed in
rubygems activerecord-tenanted
<0.7.0
0.7.0

Classification

Weakness
  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.