craftcms/cms security advisory
CVE-2026-27128: Craft CMS Race condition in Token Service potentially allows for token usage greater than the token limit
CVE-2026-27128 is a medium-severity privilege escalation vulnerability in the PHP package craftcms/cms (CVSS 4.8), published 24 February 2026. The advisory does not name a fixed version. Exploiting it needs an admin-level account.
medium 4.8 published 2026-02-24 · updated 2026-06-17
- Affected versions
- >= 4.5.0-RC1, <= 4.16.18
>= 5.0.0-RC1, <= 5.8.22 - Fixed in
- not stated
- Newest release
- 5.12.0
- Severity
- Medium · CVSS 4.8
- Type
- Privilege escalation
CWE-367 - Exploited in the wild
- Not on the CISA KEV list
checked 2026-11-04
Is your craftcms/cms version affected?
Who can exploit CVE-2026-27128
- Access: A high-privilege account in the app, such as an admin.
- Interaction: A user also has to do something, such as open a link or a page the attacker prepared.
CVSS vector (scored by NVD): CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:C/C:L/I:L/A:N
How to fix CVE-2026-27128 in craftcms/cms
- Find the installed version:
composer show craftcms/cms. If you never required it yourself,composer why craftcms/cmsshows which package pulls it in. - Update it:
composer update craftcms/cms --with-all-dependencies. - If Composer will not go that high, your composer.json constraint is holding it back. Widen it (for example
"craftcms/cms": "^5.12.0"if you can take that version), or upgrade the package that requires it. - Run
composer audit. It reads the same advisory data and should no longer list CVE-2026-27128. - Commit composer.lock and deploy it. On the server, run
composer install --no-devfrom the lock file, notcomposer update.
If you cannot upgrade yet
- Remove accounts you do not need and review what each role can do.
- Put the admin area behind a VPN, IP allow-list or extra login until you upgrade.
- If your app does not use the affected feature, note that in your audit, but still plan the upgrade.
The CVE-2026-27128 advisory
Craft is a content management system (CMS). In versions 4.5.0-RC1 through 4.16.18 and 5.0.0-RC1 through 5.8.22, a Time-of-Check-Time-of-Use (TOCTOU) race condition exists in Craft CMS’s token validation service for tokens that explicitly set a limited usage. The `getTokenRoute()` method reads a token’s usage count, checks if it’s within limits, then updates the database in separate non-atomic operations. By sending concurrent requests, an attacker can use a single-use impersonation token multiple times before the database update completes. To make this work, an attacker needs to obtain a valid user account impersonation URL with a non-expired token via some other means and exploit a race condition while bypassing any rate-limiting rules in place. For this to be a privilege escalation, the impersonation URL must include a token for a user account with more permissions than the current user. Versions 4.16.19 and 5.8.23 patch the issue.
References
- GitHub advisory GHSA-6fx5-5cw5-4897 github.com
- Fix commit 3e4afe1 github.com
Other craftcms/cms advisories
- critical Craft CMS: Passkey login accepts replayed WebAuthn assertions 2026-08-07
- medium CVE-2026-72779: Craft CMS: Arbitrary file read via SplFileObject in non-sandboxed template contexts 2026-08-06
- medium CVE-2026-72782: Craft CMS: Authenticated leak of secret environment variables 2026-08-06
- medium CVE-2026-72785: Craft CMS: Authorization bypass: view-only Categories user can modify category structure via structures/move-element 2026-08-06
- medium CVE-2026-14794: Craft CMS: Missing authorization check allows non-admin control panel users access to user registration metrics 2026-08-06
- low CVE-2026-72783: Craft CMS: Incorrect path validation could potentially lead to path traversal 2026-08-06
Related
Need help patching or upgrading? Laskyr does PHP and Laravel security fixes and upgrades. Tell us what you run and we reply with a plan and a price.
Ask about a fixWhere this data comes from
- Affected and fixed versions: the Packagist security advisories API (GitHub Advisory Database and FriendsOfPHP), the same data
composer audituses. Synced 2026-11-03. - Description, score, weakness and references: NIST National Vulnerability Database (NVD), checked 2026-11-04. This product uses data from the NVD API but is not endorsed or certified by the NVD.
- Exploited-in-the-wild status: the CISA Known Exploited Vulnerabilities catalog, checked 2026-11-04.
- Compiled by Daniel Lasek at Laskyr from the sources above. The summary, “who can exploit it”, “how to fix it” and hardening sections are our plain-English reading of the record and are generated from it. The quoted description is the record's own text. Spot an error? Tell us.