GHSA-5pgf-h923-m958low2.7
Craft CMS may expose private assets through anonymous "generate transform" calls via transform URL
Impact
An unauthenticated user can call assets/generate-transform with a private assetId, receive a valid transform URL, and fetch transformed image bytes.
Source excerpt · OSVAffected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
craftcms/cms Packagist
| Affected range | Recorded fix |
|---|---|
| From 5.0.0-RC1 before 5.9.14Ecosystem versions | 5.9.14 |
| From 4.0.0-RC1 before 4.17.8Ecosystem versions | 4.17.8 |
Version evidence: OSV · GHSA-5pgf-h923-m958
View original version evidence (400 explicit versions)
Original source description
Summary
An unauthenticated user can call assets/generate-transform with a private assetId, receive a valid transform URL, and fetch transformed image bytes.
The endpoint is anonymous and does not enforce per-asset authorization before returning the transform URL.
Details
Root cause:
- Anonymous endpoint accepts user-controlled asset reference.
- It creates and returns a transform URL for that asset without checking access rights.
- If the transform output is reachable, guest users can read content derived from private assets.
Who is impacted:
- Installations where private source assets can be transformed and transform URLs are reachable.
Security consequence:
- Anonymous users can obtain content derived from private assets without authentication.
Resources
References
- Security advisory github.com/craftcms/cms/security/advisories/GHSA-5pgf-h923-m958
- Security advisory nvd.nist.gov/vuln/detail/CVE-2026-33160
- Patch github.com/craftcms/cms/commit/7290d91639e5e3a4f7e221dfbef95c9b77331860
- Source reference github.com/craftcms/cms
- Release notes github.com/craftcms/cms/releases/tag/4.17.8
- Release notes github.com/craftcms/cms/releases/tag/5.9.14