CVE-2026-87031: Missing authorization in the REST API user creation endpoint in Concrete CMS 9.2.0 through 9.5.3 allows arbitrary account creation
n Concrete CMS 9.2.0 through 9.5.3, the REST API user creation endpoint (POST /ccm/api/1.0/users, the add() method of concrete/src/Api/Controller/Users.php) did not perform a permission check before creating an account. As a result, any valid OAuth token carrying the users:add scope, including a clientcredentials token with no associated user context, could create active, validated user accounts, bypassing email verification and administrator approval. Under default registration settings the created accounts could then edit page content, providing a path to stored cross-site scripting and further compromise. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 2.1 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N. Thanks Winston Crooker for reporting.
Affected Software
Event History
Frequently Asked Questions
What does an attacker need to exploit this issue?
The attacker needs a valid OAuth token with the users:add scope. A client_credentials token without an associated user context is sufficient.
Which deployments face the most immediate downstream risk?
Deployments using the affected REST API endpoint with OAuth tokens carrying users:add are exposed. Under default registration settings, accounts created through the endpoint can edit page content.
What can a maliciously created account do after creation?
The account is created active and validated, bypassing email verification and administrator approval. With default registration settings, it may edit page content, creating a path to stored cross-site scripting and further compromise.