Safeguard
Vulnerability Analysis•

CVE-2026-32267: Critical Privilege Escalation in Craft CMS

CVE-2026-32267 lets a low-privilege Craft CMS user become admin. Update to Craft 4.17.6 or 5.9.12 and review who can create previews on your site.

Safeguard Security Team
4 min read

CVE-2026-32267 is a critical privilege escalation flaw in Craft CMS, scored CVSS 9.8. A low-privilege user, or an unauthenticated person holding a shared preview URL, can become an administrator through the impersonation action. Craft 4.17.6 and 5.9.12 fix it, so update any 4.x or 5.x site now.

What's affected

The NVD record and the GitHub advisory agree on the ranges:

  • Craft CMS 4.0.0-RC1 up to and including 4.17.5. Fixed in 4.17.6.
  • Craft CMS 5.0.0-RC1 up to and including 5.9.11. Fixed in 5.9.12.

The package is craftcms/cms on Composer. The advisory says the issue matters most for Craft Pro and Team, where several people hold accounts, and less for Craft Solo.

The weakness sits in the users controller, in the action that lets one account impersonate another using a token.

How to check if you're exposed

Find the installed version from your project root:

composer show craftcms/cms

You can also read the locked version directly:

grep -A1 '"name": "craftcms/cms"' composer.lock

Compare the result with 4.17.6 (for the 4 line) or 5.9.12 (for the 5 line). Anything below those, on either line, is exposed.

Then ask who can reach the site. The advisory notes that a person with a valid preview token is enough, and editors create preview tokens in normal work. Shared preview links count as sensitive until you have patched.

What to do now

  1. Update Craft to 4.17.6 or 5.9.12 or later. With Composer, run composer update craftcms/cms and confirm the lock file now shows a fixed version.
  2. Deploy the update to every environment, including staging and any copies that editors can reach.
  3. Review administrator accounts and recent sessions. Look for admin logins or changes you cannot tie to a person.
  4. Treat shared preview URLs as credentials until you have patched, and avoid sending them outside your team.
  5. Reduce the number of accounts that can create previews or edit entries, where your workflow allows it.

Why it matters

The class is CWE-863, incorrect authorization. According to the advisory, a preview request was passed back through the application's dispatcher in a way that skipped the usual security guards. The guard on the impersonation action then only checked that some token had been resolved earlier in the request. It did not check that the token was meant for impersonation. Because that action is open to anonymous callers, no earlier login was needed.

In plain terms, a ticket for one door opened a different door. Any token from any route satisfied the check. The record's KEV flag is false, and the advisory does not report exploitation in the wild. It does call the bug fairly serious, and the fix is a small, safe upgrade.

Sites with many editors carry the most risk, because each editor can obtain a preview token as part of ordinary work.

Try it yourself

Click through it at your own pace, or open it full screen.

Quick check

Do I need to be logged in for this to work?

The advisory says a low-privilege user can escalate, and in extreme cases an unauthenticated user who has been sent a shared URL can do the same. Patch regardless of how many accounts you have.

Is Craft Solo affected?

The advisory says Craft Pro and Team are affected more than Solo, which implies Solo is affected less, not that it is safe. Update it too.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.