CVE-2026-8140CWE-352

Concrete CMS 9.5.0 and below is vulnerable to CSRF on download() in the package install controller

High · published May 21, 2026

CVSS v4.0
7.5
EPSS
0%
Percentile
4.9
In the wild
Unconfirmed
What it is

Concrete CMS 9.5.0 and below does not validate a CSRF token before processing requests to /dashboard/extend/install/download/<remoteId>. The download() method in concrete/controllers/single_page/dashboard/extend/install.php checks only the canInstallPackages() permission before fetching a remote marketplace package and writing it to the server's DIR_PACKAGES directory. Because the endpoint is a state-changing GET route with no token enforcement, an attacker who can cause an authenticated administrator to visit a crafted page can force an arbitrary marketplace package to be downloaded. In order to be vulnerable, the victim must be passing canInstallPackages() and the site must be connected to the Concrete marketplace. 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.

The record
Technical detail
CVSS v4.0
7.5 · HIGH
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
EPSS
0.00161 · 4.9th percentile
Weakness
CWE-352 · Cross-Site Request Forgery (CSRF)
Published
2026-05-21T20:20Z
EPSS history
Timeline
  • 21 MAY 20:20Z
    Concrete CMS 9.5.0 and below is vulnerable to CSRF on download() in the package install controller
    cvelistv5