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 json_decode(), 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
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-8135
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 19:27 UTC · Revision 1
Source evidence
Concrete CMS 9.5.0 and below is vulnerable to RCE due to insecure deserialization occurring in the ExpressEntryList block controller.
core-osv · Original sourcePublished 21 May 2026, 20:16 UTC
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 json_decode(), 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
osv:CVE-2026-8135
Complete source record
{
"id": "f12c28a18f3f2f38e013e38554ff7d991b5a72110c1336ae82b29cc90a55099d",
"url": "https://osv.dev/vulnerability/CVE-2026-8135",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Concrete CMS 9.5.0 and below is vulnerable to RCE due to insecure deserialization occurring in the ExpressEntryList block controller.",
"summary": "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 json_decode(), 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",
"evidence": "osv:CVE-2026-8135",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-8135",
"aliases": [
"CVE-2026-8135",
"GHSA-pv2v-6w2v-97x6"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/concretecms/concretecms",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"last_affected": "c747e425266ac50c12b5f2f74fa895ecec5cd777"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "5.0"
},
{
"last_affected": "9.5.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"cpe": "cpe:2.3:a:concretecms:concrete_cms:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "9.5.0"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"9.5.0",
"9.5.0RC2",
"9.5.0RC1",
"9.4.4",
"9.4.3",
"9.4.2",
"9.4.1",
"9.4.0",
"9.4.0RC2",
"9.4.0RC1",
"9.3.7",
"9.3.6",
"9.3.5",
"9.3.0",
"9.3.4",
"9.3.3",
"9.3.2",
"9.3.1",
"8.4.1",
"8.3.1",
"8.2.1",
"8.2.0",
"8.2.0RC2",
"8.1.0",
"5.7.5.7",
"5.7.5.6",
"5.7.5.5",
"5.7.5.2",
"5.7.4.1",
"5.7.3.1",
"5.7.3",
"5.7.2.1",
"5.7.2",
"5.7.0.4",
"5.7.1",
"5.7.0.3",
"5.7.0.1",
"5.7.0"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-8135.json"
}
}
],
"modified": "2026-10-28T02:30:31.568378702Z",
"provider": "osv",
"references": [
"https://documentation.concretecms.org/9-x/developers/introduction/version-history/951-release-notes",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/8xxx/CVE-2026-8135.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-8135",
"https://github.com/concretecms/concretecms"
],
"provider_metadata": {
"cwe_ids": [
"CWE-502"
],
"cna_assigner": "ConcreteCMS",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/8xxx/CVE-2026-8135.json"
}
},
"related_cves": [
{
"value": "CVE-2026-8135",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 498703,
"published_at": "2026-05-21T20:16:39.866+00:00"
}