The vulnerability described in CVE-2026-8413 is a Cross-Site Request Forgery (CSRF) in the 'concrete/controllers/dialog/page/bulk/design.php' controller. The analysis of the security patch released in version 9.5.1 confirms this. The commit f22b9dff59454391a50a255a39995bf635deea9e addresses this vulnerability, along with several other similar CSRF flaws in other controllers.
The root cause of the vulnerability in Design::submit is the absence of a CSRF token check before performing a state-changing operation (modifying page designs). The original code only verified if the user had the necessary permissions using canAccess(). An attacker could exploit this by crafting a malicious link or form that, when visited by an authenticated administrator, would execute the bulk design change action without their knowledge or consent.
The fix involves replacing the canAccess() check with validateAction(). The validateAction() method is a standard part of Concrete CMS's controller infrastructure that not only checks for permissions but also validates the presence and correctness of a CSRF token in the request. This ensures that the action can only be initiated from a legitimate, user-interactive form within the CMS itself, effectively preventing CSRF attacks.
The same pattern of vulnerability and fix was identified in multiple other controllers within the same commit, indicating a broader effort to harden the application against CSRF attacks. The functions identified are all entry points for state-changing actions that were previously not protected by CSRF tokens.