Concrete CMS before 9.5.4 stored is vulneratble to cross-site scripting via unauthenticated XML/XSLT file upload in the Form Block
Concrete CMS before 9.5.4 did not sanitize XML and XSLT documents uploaded through a public Form Block file-upload question. Plain XML uploads were validated by file extension only and stored as publicly accessible files that were served inline from the application's own origin. An unauthenticated visitor could therefore store an XML document containing an xml-stylesheet processing instruction that referenced an attacker-supplied, same-origin XSLT stylesheet. When a victim opened the stored file directly in a browser, the browser fetched the stylesheet, transformed the document into HTML, and executed attacker-controlled JavaScript in the Concrete CMS origin (stored cross-site scripting). If the victim was an authenticated administrator, the script could act with that administrator's session, and the reporter demonstrated creation of a new user in the Administrators group. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.3 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks Valentin SARRE (Independent security researcher) for reporting.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-85386
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 2 Nov 2026, 18:26 UTC · Revision 1
Source evidence
Concrete CMS before 9.5.4 stored is vulneratble to cross-site scripting via unauthenticated XML/XSLT file upload in the Form Block
core-osv · Original sourcePublished 16 Sept 2026, 16:33 UTC
Concrete CMS before 9.5.4 did not sanitize XML and XSLT documents uploaded through a public Form Block file-upload question. Plain XML uploads were validated by file extension only and stored as publicly accessible files that were served inline from the application's own origin. An unauthenticated visitor could therefore store an XML document containing an xml-stylesheet processing instruction that referenced an attacker-supplied, same-origin XSLT stylesheet. When a victim opened the stored file directly in a browser, the browser fetched the stylesheet, transformed the document into HTML, and executed attacker-controlled JavaScript in the Concrete CMS origin (stored cross-site scripting). If the victim was an authenticated administrator, the script could act with that administrator's session, and the reporter demonstrated creation of a new user in the Administrators group. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.3 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks Valentin SARRE (Independent security researcher) for reporting.
osv:CVE-2026-85386
Complete source record
{
"id": "de0339421fb553c76bd1bbe413adbc6ba7321e6cf8cd42435fa78ba68126a4a4",
"url": "https://osv.dev/vulnerability/CVE-2026-85386",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "Concrete CMS before 9.5.4 stored is vulneratble to cross-site scripting via unauthenticated XML/XSLT file upload in the Form Block",
"summary": "Concrete CMS before 9.5.4 did not sanitize XML and XSLT documents uploaded through a public Form Block file-upload question. Plain XML uploads were validated by file extension only and stored as publicly accessible files that were served inline from the application's own origin. An unauthenticated visitor could therefore store an XML document containing an xml-stylesheet processing instruction that referenced an attacker-supplied, same-origin XSLT stylesheet. When a victim opened the stored file directly in a browser, the browser fetched the stylesheet, transformed the document into HTML, and executed attacker-controlled JavaScript in the Concrete CMS origin (stored cross-site scripting). If the victim was an authenticated administrator, the script could act with that administrator's session, and the reporter demonstrated creation of a new user in the Administrators group. The Concrete CMS security team gave this vulnerability a CVSS v4.0 score of 7.3 with vector CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks Valentin SARRE (Independent security researcher) for reporting.",
"evidence": "osv:CVE-2026-85386",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-85386",
"aliases": [
"CVE-2026-85386"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/concretecms/concretecms",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "66d3f3d614e26e4b7955b967fed133a8acdb6820"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "5.0.0"
},
{
"last_affected": "9.5.3"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"cpe": "cpe:2.3:a:concretecms:concrete_cms:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "9.5.4"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"9.5.3",
"9.5.2",
"9.5.1",
"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-85386.json"
}
}
],
"modified": "2026-10-28T02:30:22.153109697Z",
"provider": "osv",
"references": [
"https://documentation.concretecms.org/developers/introduction/version-history/954-release-notes",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85386.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-85386",
"https://github.com/concretecms/concretecms"
],
"provider_metadata": {
"cwe_ids": [
"CWE-79"
],
"cna_assigner": "ConcreteCMS",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/85xxx/CVE-2026-85386.json"
}
},
"related_cves": [
{
"value": "CVE-2026-85386",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 488382,
"published_at": "2026-09-16T16:33:53.412+00:00"
}