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.
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:
Security consequence:
https://github.com/craftcms/cms/commit/7290d91639e
{
"github_reviewed": true,
"nvd_published_at": "2026-03-24T18:16:10Z",
"cwe_ids": [
"CWE-639",
"CWE-862"
],
"github_reviewed_at": "2026-03-24T16:59:58Z",
"severity": "LOW"
}