MEDIUM 4.3

CVE-2026-56384: Craft CMS Missing Authorization in Asset Preview Endpoint

Craft CMS versions 4.x and 5.x contain a permissions bypass flaw in the asset preview feature. A Control Panel user who lacks permission to view private assets can circumvent that restriction by directly calling the preview endpoint and supplying an asset ID they shouldn't access. The system will return a preview containing a signed link to the private asset, effectively revealing content the user was never authorized to see. Exploitation requires valid Control Panel access but no special privileges beyond that.

Source data · NVD / CISA · public domain

CVSS
3.1 · 4.3 MEDIUM · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Weaknesses (CWE)
CWE-862
Affected products
0 configuration(s)
Published / Modified
2026-06-21 / 2026-06-24

NVD description (verbatim)

Craft CMS contains a missing authorization vulnerability in the assets/preview-thumb endpoint. A Control Panel user without permission to view a target private asset can call the endpoint with an attacker-controlled assetId and receive preview HTML containing a signed fallback transform preview link for that private asset, because no asset-view permission check is performed before preview generation. This affects versions >= 4.0.0-RC1, <= 4.17.7 and >= 5.0.0-RC1, <= 5.9.13, and is fixed in 4.17.8 and 5.9.14.

3 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-56384 is a missing authorization vulnerability (CWE-862) in Craft CMS's assets/preview-thumb endpoint. The endpoint generates preview HTML with signed fallback transform links without first validating that the requesting user has asset-view permission on the target asset. An authenticated Control Panel user can supply an arbitrary assetId parameter to retrieve preview content for private assets they should not access. The vulnerability affects Craft 4.0.0-RC1 through 4.17.7 and 5.0.0-RC1 through 5.9.13, with fixes released in 4.17.8 and 5.9.14 respectively.

Business impact

This vulnerability enables information disclosure of private digital assets to authenticated but unprivileged Control Panel users. Organizations using Craft CMS to manage confidential images, documents, or media files risk exposure if those assets are stored as 'private.' The threat is confined to internal misuse—an attacker would need legitimate Control Panel credentials—but the impact scales with asset sensitivity. Content isolation controls are a foundational security expectation in multi-user CMS platforms, and their bypass can undermine internal access policies and compliance frameworks.

Affected systems

Craft CMS versions 4.0.0-RC1 through 4.17.7 (4.x branch) and 5.0.0-RC1 through 5.9.13 (5.x branch) are affected. Systems running Craft 4.17.8 or later, or 5.9.14 or later, are patched. Installations that do not expose Control Panel access to untrusted users or do not use the private asset feature face reduced risk, though all affected versions should be treated as vulnerable until patched.

Exploitability

Exploitation is straightforward once an attacker has Control Panel credentials. No special attack complexity or user interaction is required; a single HTTP request to the assets/preview-thumb endpoint with a target assetId parameter will return the preview. The CVSS score of 4.3 reflects the requirement for prior authentication (PR:L) and limited scope of impact (confidentiality only). However, the ease of abuse and low barrier to discovery make this a practical risk in environments with loose Control Panel access controls or disgruntled insiders.

Remediation

Update Craft CMS to version 4.17.8 or later (for 4.x users) or 5.9.14 or later (for 5.x users). No workarounds are available short of patching. Verify your current version and plan an update within your normal maintenance window. Both patched versions are stable releases and should not introduce breaking changes. Prioritize this update if your Control Panel is accessible to contractors, third-party agencies, or users with limited privileges.

Patch guidance

1. Identify all Craft CMS instances and their current versions (check craft/composer.json or the Control Panel About page). 2. Back up your database and files before patching. 3. Update via Composer: 'composer require craftcms/cms:4.17.8' (or 5.9.14) and run 'php craft migrate/all'. 4. Test asset preview functionality and private asset access controls in a staging environment first. 5. Verify that only authorized users can preview private assets post-patch. Consult the official Craft CMS changelog for any breaking changes or migration notes specific to your version jump.

Detection guidance

Monitor Control Panel access logs for repeated calls to /admin/assets/preview-thumb with varying assetId parameters, particularly from users whose roles lack asset-view permissions. Implement alerting if a single session requests previews for more than a threshold number of distinct private assets in a short timeframe. Review Control Panel user activity in the past 30 days to identify whether this endpoint has been called by unauthorized users. If you suspect exploitation, audit the signed preview links in HTTP response logs to determine which assets may have been accessed.

Why prioritize this

Despite the medium CVSS score, this vulnerability merits prompt patching because it directly undermines content access controls in a multi-user system, exploitability is trivial, and the attack leaves minimal forensic evidence (preview links are time-limited but still viable during their window). Organizations managing sensitive media or relying on Craft CMS for confidential document repositories should prioritize this update within 2–4 weeks. Lower urgency if your Control Panel is restricted to a small, trusted team and private assets are minimal.

Risk score, explained

CVSS 4.3 (Medium) reflects the confluence of network-accessible endpoint (AV:N), low attack complexity (AC:L), requirement for valid credentials (PR:L), no user interaction (UI:N), and confidentiality impact limited to a single user's unauthorized view of private content (C:L/I:N/A:N). The score appropriately penalizes the authentication prerequisite; however, in environments with loose Control Panel access or high asset sensitivity, practical risk may exceed the numeric rating.

Frequently asked questions

Do we need to patch if we don't use private assets in Craft CMS?

No. If all assets in your Craft instance are public or if you do not use the asset privacy feature, this vulnerability does not apply. However, you should verify this assumption across all sites and apply the patch preemptively if there is any possibility of private assets being added in the future.

Can this vulnerability be exploited without Control Panel access?

No. Exploitation requires a valid Control Panel user account and the ability to reach the /admin/assets/preview-thumb endpoint. This is not an unauthenticated vulnerability, which limits the attack surface to internal or insider threats.

Will patching break any of our custom asset preview code?

The patch adds authorization checks to the preview endpoint; it should not alter the response structure or break legitimate preview workflows. However, if your custom code relies on any undocumented behavior or has been written around this missing check, test in staging before deploying to production.

How do we verify the patch was successful?

After updating to 4.17.8 or 5.9.14, log in as a low-privilege Control Panel user and attempt to preview a private asset you should not have access to. You should receive a permission error instead of a preview link. Additionally, review the release notes to confirm the authorization check was included in your patched version.

This analysis is based on the official CVE record and vendor advisory as of the publication date. Security landscapes evolve; consult the latest Craft CMS security advisories and your vendor's patch status before making remediation decisions. This page does not constitute professional security advice. Organizations should validate all findings in their own environment and engage a security team if needed. No exploit code or weaponized proof-of-concept is provided or endorsed. Source: NVD (public-domain), retrieved 2026-07-29. Analysis generated by SEC.co (claude-haiku-4-5).