Описание
Craft CMS: Authorized asset "preview file" requests bypass allows users without asset access to retrieve private preview metadata
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-fileaccepts a maliciously controlledassetIdand 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.
Resources
- d30df3112220db1ffd6726a3ed11857014c7fb27
- b1cddf72c98a
Ссылки
- https://github.com/craftcms/cms/security/advisories/GHSA-44px-qjjc-xrhq
- https://nvd.nist.gov/vuln/detail/CVE-2026-56385
- https://github.com/craftcms/cms/commit/b1cddf72c98a66801beb04ea4b07e72182b7b7db
- https://github.com/craftcms/cms/commit/d30df3112220db1ffd6726a3ed11857014c7fb27
- https://www.vulncheck.com/advisories/craft-cms-authorization-bypass-in-assets-preview-file-endpoint
Пакеты
craftcms/cms
>= 5.0.0-RC1, <= 5.9.13
5.9.14
craftcms/cms
>= 4.0.0-RC1, <= 4.17.7
4.17.8
Связанные уязвимости
Craft CMS versions >= 5.0.0-RC1, <= 5.9.13 and >= 4.0.0-RC1, <= 4.17.7 contain an authorization bypass in the assets/preview-file endpoint. The action does not enforce per-asset view authorization before returning preview content, allowing an authenticated low-privileged user to supply a controlled assetId for an asset they are not permitted to view and still receive preview response data (previewHtml), including a private preview image route containing the target private assetId. Fixed in 5.9.14 and 4.17.8.