CVE-2026-8140: Concrete CMS 9.5.0 and below is vulnerable to CSRF on download() in the package install controller
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/singlepage/dashboard/extend/install.php checks only the canInstallPackages() permission before fetching a remote marketplace package and writing it to the server's DIRPACKAGES 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.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2026-8140?
The severity of CVE-2026-8140 is high, with a CVSS score of 7.5.
How do I fix CVE-2026-8140?
To fix CVE-2026-8140, update to a patched version of Concrete CMS that includes CSRF token validation.
What type of vulnerability is CVE-2026-8140?
CVE-2026-8140 is a Cross-Site Request Forgery (CSRF) vulnerability affecting Concrete CMS.
What can be affected by CVE-2026-8140?
CVE-2026-8140 can allow unauthorized access to the download method in the Concrete CMS package install controller.
What versions are impacted by CVE-2026-8140?
Concrete CMS versions 9.5.0 and below are impacted by CVE-2026-8140.