GHSA-pmwx-rm49-xv39

Suggest an improvement
Source
https://github.com/advisories/GHSA-pmwx-rm49-xv39
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-pmwx-rm49-xv39/GHSA-pmwx-rm49-xv39.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-pmwx-rm49-xv39
Published
2026-07-29T17:06:00Z
Modified
2026-07-29T17:15:32.416429356Z
Severity
  • 2.3 (Low) CVSS_V4 - CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N CVSS Calculator
Summary
ActiveRecord::Tenanted::Storage::DiskService#path_for has a possible path traversal
Details

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.

Database specific
{
    "cwe_ids": [
        "CWE-22"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-07-29T17:06:00Z",
    "severity": "LOW",
    "nvd_published_at": null
}
References

Affected packages

RubyGems / activerecord-tenanted

Package

Name
activerecord-tenanted
Purl
pkg:gem/activerecord-tenanted

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
0.7.0

Affected versions

0.*
0.1.0
0.2.0
0.3.0
0.4.0
0.4.1
0.5.0
0.6.0

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-pmwx-rm49-xv39/GHSA-pmwx-rm49-xv39.json"