CVE-2026-81897
moderateStored XSS via CSRF bypass in Concrete CMS Express forms (below 9.5.3)
Concrete CMS versions below 9.5.3 fail to validate the anti-CSRF token on the save_control action of the Express entities forms dashboard controller, allowing a remote, unauthenticated attacker to trick a logged-in administrator into submitting a forged cross-site request. The forged request writes attacker-controlled headline and body values into an existing Express form Text control, which are then rendered without output encoding — so the injected markup executes as persistent JavaScript against any administrator who later views the affected entry. Successful exploitation yields stored cross-site scripting with high impact on confidentiality, integrity, and availability of the CMS (CVSS v4.0 7.7), though it requires social-engineering an authenticated admin and the target site must actually use Express forms with Text controls. All sites running Concrete CMS below 9.5.3 are affected. No public proof-of-concept or in-the-wild exploitation is known, and the issue is not in the CISA KEV catalog.
What to do: Upgrade Concrete CMS to 9.5.3 or later as soon as possible. Until patched, brief administrators not to click untrusted links while logged in, since exploitation requires a forged request from an authenticated admin session. Audit existing Express form entries for injected markup and review logs for unexpected save_control submissions to rule out prior compromise.
| Concrete CMS | < 9.5.3 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
In Concrete CMS below CMS 9.5.3, the save_control action in the Express entities forms dashboard controller did not validate the anti-CSRF token. By causing an authenticated administrator to submit a forged cross-site request, a remote attacker without credentials could write attacker-controlled headline and body values to an existing Express form Text control. Those values were emitted without output encoding by the Express form Text element, so the injected markup executed as persistent JavaScript for any administrator who later opened the affected entry, resulting in stored cross-site scripting. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.7 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks Yonatan Drori from Tenzai for reporting.
- Weakness
- CWE-79, CWE-352
- Vector
- CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/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 news0 stories
No ingested article mentions this CVE yet.