Summary
An authenticated low-privileged user can call assets/preview-file for an asset they are not authorized to view and still receive preview response data (previewHtml) for that private asset.
The returned preview HTML included a private preview image route containing the target private assetId, even though canView was false for the attacker account.
Details
assets/preview-file accepts a maliciously controlled assetId and renders preview output.
- The action does not enforce per-asset view authorization prior to returning preview content.
- As a result, an authenticated user without asset-view permission can still obtain private preview output.
This affects Craft installations with authenticated users of mixed privilege levels with private assets.
References
Summary
An authenticated low-privileged user can call
assets/preview-filefor an asset they are not authorized to view and still receive preview response data (previewHtml) for that private asset.The returned preview HTML included a private preview image route containing the target private
assetId, even thoughcanViewwasfalsefor the attacker account.Details
assets/preview-fileaccepts a maliciously controlledassetIdand renders preview output.This affects Craft installations with authenticated users of mixed privilege levels with private assets.
References