Skip to main content

Concrete CMS CVE-2026-8417

| EUVDEUVD-2026-31334 HIGH
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-05-21 ConcreteCMS GHSA-jr5g-qv3g-rxxx
7.5
CVSS 4.0 · Vendor: ConcreteCMS
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify target Concrete CMS site and installed package handle
  2. Delivery
    Host malicious page with cross-site GET to do_update endpoint
  3. Exploit
    Lure authenticated admin via phishing or watering hole
  4. Execution
    Victim browser submits authenticated request
  5. Persist
    Server skips CSRF check and runs upgradeCoreData() and package upgrade()
  6. Impact
    Package state altered or chained to code execution

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK

1 technique across 1 tactic: Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Victim must be an authenticated Concrete CMS user whose role passes the canInstallPackages() permission check (in practice, an administrator), AND the specific package handle targeted in the URL must already be installed on the victim site, AND the admin must perform user interaction by visiting attacker-controlled content while their CMS session cookie is valid in the same browser. Exploitation is limited by: required admin-level victim session, prior knowledge or guessing of an installed package handle, the admin's browser sending cookies cross-site (defeated by SameSite=Strict session cookies), and the upgrade producing a visible state change that an alert admin may notice. The endpoint itself requires no attacker authentication, but successful impact is entirely dependent on the victim's privilege level at the time of click.

Impact

The CVSS 4.0 vector (AV:N/AC:H/AT:P/PR:N/UI:A) reflects meaningful real-world friction: network reachable and unauthenticated from the attacker's standpoint, but high attack complexity, a present attack requirement (the targeted package must already be installed), and required user interaction (the admin must click or visit attacker-controlled content while logged in). Confidentiality, integrity, and availability impacts are all High because re-triggering a package upgrade can clobber state, alter site code paths, or be chained with a known-vulnerable package version to gain code execution. There is no EPSS data provided, no CISA KEV listing, and no public exploit identified - so this is primarily a targeted-attack risk against organizations whose admins browse externally during privileged sessions, not a mass-exploitation candidate. The PR:N rating in the vector describes the attacker, not the victim - the description makes clear the victim must be an authenticated administrator passing canInstallPackages(), so defenders should treat this as an admin-session-hijack-style risk, not an unauthenticated bug.

Exploit ScenarioDerived

An attacker identifies a Concrete CMS site (e.g., via fingerprinting) and a package handle that is installed on it, then hosts a page with an <img>, <iframe>, or auto-navigated link to https://victim-site/dashboard/extend/update/do_update/<pkgHandle>. The attacker lures an administrator - via phishing email, a malicious comment, or watering-hole - into visiting that page while logged into the CMS, and the browser silently issues the GET, causing the server to run upgradeCoreData() and the package's upgrade() routine under the admin's session. No public PoC is currently identified, but the attack requires only standard HTML and no exploit code.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 21, 2026

Cross-site request forgery in Concrete CMS 9.5.0 and earlier allows remote attackers to coerce an authenticated administrator into triggering arbitrary package upgrades by luring them to a malicious page that issues a single GET to /dashboard/extend/update/do_update/<pkgHandle>. The do_update() handler only checks the canInstallPackages() permission and omits CSRF token validation on this state-changing route, so a cross-site navigation is sufficient to invoke upgradeCoreData() and the package controller's upgrade() routine. No public exploit identified at time of analysis and no CISA KEV listing; EPSS not provided.

RemediationAI

Upgrade to Concrete CMS 9.5.1 or later, which the vendor's 9.5.1 release notes (https://documentation.concretecms.org/9-x/developers/introduction/version-history/951-release-notes) cover as the patched release; this is the primary fix and adds CSRF token enforcement to the do_update route. Until upgrading, restrict access to /dashboard/extend/update/do_update/* at a reverse proxy or WAF so it is reachable only from trusted internal networks or VPN - note this breaks legitimate package upgrades from outside that perimeter. Administrators should also use a dedicated browser profile (or private session) for CMS administration to prevent cross-site navigation from carrying authenticated cookies, and uninstall any unused packages so the precondition 'target package already installed' is minimized. SameSite=Strict cookies on the session can mitigate cross-site GET-based CSRF but may interfere with single sign-on flows.

Affected VersionsENISA

Concrete CMS 5.0 ≤9.5.0

Affected Packages

composer concrete5/concrete5 fix: 9.5.1
euvd concrete_cms no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in composer, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw lives in concrete/controllers/single_page/dashboard/extend/update.php within Concrete CMS, a PHP-based open-source content management platform. The vulnerable route is exposed as a GET endpoint that performs state-changing operations (package upgrade) without enforcing the framework's CSRF token, classic CWE-352 (Cross-Site Request Forgery). The handler authorizes the action solely via the canInstallPackages() permission check - an authentication/authorization gate - rather than tying execution to a one-time anti-forgery token bound to the admin session, so any authenticated session in the victim's browser is implicitly trusted by the endpoint. CPE coverage is cpe:2.3:a:concrete_cms:concrete_cms:*:*:*:*:*:*:*:*, indicating the core product across versions up to and including 9.5.0.

Know when Concrete Cms gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (ConcreteCMS) PRIMARY 7.5 HIGH
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (ConcreteCMS) · only source for this CVE.

CVSS VectorVendor: ConcreteCMS

Attack Vector
Network
Attack Complexity
High
Attack Requirements
Present
Privileges Required
None
User Interaction
Active
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Concrete CMS 9.5.0 and below does not validate a CSRF token before processing requests to /dashboard/extend/update/do_update/<pkgHandle>. The do_update() method in concrete/controllers/single_page/dashboard/extend/update.php checks only canInstallPackages() before executing upgradeCoreData() and upgrade() on the named package's controller. Because the endpoint is a state-changing GET route with no token enforcement, an attacker can force an authenticated administrator to trigger a package upgrade via a single cross-site navigation.In order to be vulnerable, the victim must be passing canInstallPackages() and and a target package must already be already installed. The Concrete CMS security team gave this vulnerability a CVSS v.4.0 score of 7.5 with vector CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N. Thanks  https://github.com/maru1009  for reporting.

Executive ViewAI

Why It Matters

Concrete CMS versions 9.5.0 and earlier contain a cross-site request forgery vulnerability that allows authenticated administrators to be coerced into triggering arbitrary package upgrades when visiting attacker-controlled pages. No public exploit identified at time of analysis. This flaw enables installation of malicious packages with administrative privileges, creating a direct path to code execution and full application compromise; organizations running affected versions require immediate inventory and defensive measures.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable package upgrade and auto-update functionality via application settings; (2) Implement WAF rules to block all requests to /dashboard/extend/update/do_update; (3) Enforce strict network access controls limiting admin dashboard to specific IP ranges or VPN; (4) Mandate multi-factor authentication for all administrator accounts; (5) Enable comprehensive audit logging for package modifications and administrative actions.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Total

Priority Score

38
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +38
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

CVE-2026-18110 HIGH POC
8.7 Sep 15

Unauthenticated user enumeration in Concrete CMS 9.0.0 through 9.5.2 allows any anonymous visitor to dump the complete b

CVE-2021-22968 HIGH POC
7.2 Nov 19

A bypass of adding remote files in Concrete CMS (previously concrete5) File Manager leads to remote code execution in Co

CVE-2021-36766 HIGH POC
7.2 Jul 30

Concrete5 through 8.5.5 deserializes Untrusted Data. Rated high severity (CVSS 7.2), this vulnerability is remotely expl

CVE-2020-24986 HIGH POC
7.2 Sep 04

Concrete5 up to and including 8.5.2 allows Unrestricted Upload of File with Dangerous Type such as a .php file via File

CVE-2020-11476 HIGH POC
7.2 Jul 28

Concrete5 before 8.5.3 allows Unrestricted Upload of File with Dangerous Type such as a .phar file. Rated high severity

CVE-2018-13790 HIGH POC
7.2 Jul 09

A Server Side Request Forgery (SSRF) vulnerability in tools/files/importers/remote.php in concrete5 8.2.0 can lead to at

CVE-2026-6826 MEDIUM POC
6.9 May 21

Unauthenticated file usage disclosure in Concrete CMS 9.5.0 and below exposes internal page structure to any network-acc

CVE-2017-7725 MEDIUM POC
6.1 Apr 13

concrete5 8.1.0 places incorrect trust in the HTTP Host header during caching, if the administrator did not define a "ca

CVE-2026-2994 MEDIUM POC
6.8 Mar 04

Concrete CMS versions below 9.4.8 contain a cross-site request forgery vulnerability in the Anti-Spam Allowlist Group Co

CVE-2017-8082 MEDIUM POC
6.5 Apr 24

concrete5 8.1.0 has CSRF in Thumbnail Editor in the File Manager, which allows remote attackers to disable the entire in

CVE-2026-8237 MEDIUM POC
6.3 May 21

Unauthenticated information disclosure in Concrete CMS 9.5.0 and earlier allows remote attackers to enumerate all conver

CVE-2026-8236 MEDIUM POC
6.3 May 21

Unauthenticated information disclosure in Concrete CMS 9.5.0 and below allows any network-accessible attacker to enumera

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy