ZeroHour

CVE-2026-18115

moderate

Missing Per-Field Authorization in Concrete CMS REST API Allows Account Takeover

CVSS 4.0
7.4 high
EPSS
Published
()
Modified
AI analysis

Concrete CMS versions 9.2.0 through 9.5.2 fail to enforce per-field edit_user_properties permissions on the REST API user write endpoints, specifically PUT /ccm/api/1.0/users/{uID} and POST /ccm/api/1.0/users/{uID}/change_password. An attacker who holds an update-scoped OAuth token and permission to edit even a single non-sensitive field can send crafted API requests to change another non-superuser's password, username, email, and attributes. The practical result is complete takeover of the targeted account, though superuser accounts are not affected; the Concrete CMS security team scored this CVSS v4.0 7.4 (high). Affected installations are Concrete CMS 9.2.0-9.5.2 deployments where the REST API and OAuth-based integrations are in use. No public proof-of-concept is known, the issue is not on the CISA KEV list, and no in-the-wild exploitation has been reported.

What to do: Upgrade affected Concrete CMS installations to a release newer than 9.5.2 (the latest 9.x) as soon as possible. Review API and OAuth logs for unexpected PUT/POST calls to the /ccm/api/1.0/users/ endpoints, and rotate credentials for any non-superuser accounts showing unexplained password, username, email, or attribute changes. If REST API integrations are not required, disable them and revoke unneeded update-scoped OAuth tokens until patched.

Affected
Concrete CMS9.2.0 to 9.5.2
Estimated exposure
moderatetens of thousands of sites at most (subset of Concrete CMS installs on 9.2.0-9.5.2 with REST API and OAuth enabled) — Concrete CMS is tracked by public CMS market-share telemetry as powering roughly 0.1% of public websites (tens of thousands of live sites per BuiltWith/W3Techs-style counts), and only the portion running 9.2.0-9.5.2 with the REST API and…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

Concrete CMS 9.2.0 to 9.5.2 did not enforce per-field edit_user_properties permissions on the REST API user write endpoints (PUT /ccm/api/1.0/users/{uID} and POST /ccm/api/1.0/users/{uID}/change_password). A user with an update-scoped OAuth token and permission to edit only one non-sensitive field could change another non-superuser's password, username, email, and attributes, taking over that account. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.4 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N. Thanks riodrwn for reporting.

Weakness
CWE-862
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.