CVE-2026-8135: Concrete CMS 9.5.0 and below is vulnerable to RCE due to insecure deserialization occurring in the ExpressEntryList block controller.
Concrete CMS 9.5.0 and below is vulnerable to Remote Code Execution due to insecure deserialization occurring in the ExpressEntryList block controller. An rogue administrator with privileges to add blocks to an area can bypass the intended protection mechanism (fromCIF === true), which normally restricts malicious inputs over form POST requests, by leveraging the REST API functionality. Because the REST API parses requests using jsondecode(), the string "true" is evaluated as a strict PHP Boolean(true). This bypass allows the attacker to inject a malicious serialized payload into the block's filterFields database column. The payload will subsequently be executed when the block's data is viewed or edited by an administrator leading to complete server takeover (RCE).The Concrete CMS security team gave this vulnerability a CVSS v.4.0 score of 8.9 with a vector of CVSS:4.0/AV:N/AC:H/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H. Thanks Nguyễn Văn Thiện https://github.com/Thien225409 for reporting
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-8135?
CVE-2026-8135 has a severity rating of high, with a CVSS score of 8.9.
What type of vulnerability is CVE-2026-8135?
CVE-2026-8135 is a Remote Code Execution vulnerability due to insecure deserialization in Concrete CMS.
How do I fix CVE-2026-8135?
To fix CVE-2026-8135, upgrade to Concrete CMS version 9.5.1 or above, where the vulnerability has been addressed.
Who is affected by CVE-2026-8135?
CVE-2026-8135 affects users of Concrete CMS version 9.5.0 and below, particularly those with the ability to add blocks.
What causes the vulnerability in CVE-2026-8135?
The vulnerability in CVE-2026-8135 is caused by insecure deserialization within the ExpressEntryList block controller, allowing unauthorized remote code execution.