A low-privileged authenticated user can read private asset content by calling assets/edit-image with an arbitrary assetId that they are not authorized to view.
The endpoint returns image bytes (or a preview redirect) without enforcing a per-asset view authorization check, leading to potential unauthorized disclosure of private files.
Root cause:
- A user-controlled object reference (assetId) is used to load and return sensitive content.
- The action does not verify whether the current user is authorized to view that asset.
- This creates an authenticated IDOR / authorization bypass.
https://github.com/craftcms/cms/commit/7290d91639e
{
"nvd_published_at": "2026-03-24T18:16:09Z",
"severity": "MODERATE",
"cwe_ids": [
"CWE-639"
],
"github_reviewed": true,
"github_reviewed_at": "2026-03-24T16:53:24Z"
}