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.
{
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27128.json",
"cwe_ids": [
"CWE-367"
]
}{
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "4.16.19"
},
{
"fixed": "5.8.23"
},
{
"introduced": "4.5.0-NA"
},
{
"last_affected": "4.5.0-NA"
},
{
"introduced": "5.0.0-NA"
},
{
"last_affected": "5.0.0-NA"
},
{
"introduced": "5.0.0-rc1"
},
{
"last_affected": "5.0.0-rc1"
}
],
"cpe": [
"cpe:2.3:a:craftcms:craft_cms:*:*:*:*:*:*:*:*",
"cpe:2.3:a:craftcms:craft_cms:4.5.0:-:*:*:*:*:*:*",
"cpe:2.3:a:craftcms:craft_cms:5.0.0:-:*:*:*:*:*:*",
"cpe:2.3:a:craftcms:craft_cms:5.0.0:rc1:*:*:*:*:*:*"
],
"source": [
"CPE_RANGE",
"CPE_STRING",
"REFERENCES"
]
}