Craft is a content management system (CMS). Prior to 5.9.0-beta.1 and 4.17.0-beta.1, Craft CMS implements a blocklist to prevent potentially dangerous PHP functions from being called via Twig non-Closure arrow functions. In order to be able to successfully execute this attack, you need to either have allowAdminChanges enabled on production, or a compromised admin account, or an account with access to the System Messages utility. Several PHP functions are not included in the blocklist, which could allow malicious actors with the required permissions to execute various types of payloads, including RCEs, arbitrary file reads, SSRFs, and SSTIs. This vulnerability is fixed in 5.9.0-beta.1 and 4.17.0-beta.1.
Craft CMS applies a blocklist mechanism to filter potentially dangerous PHP functions that can be invoked through non-Closure arrow functions in the Twig template engine. The vulnerability lies in the fact that the blocklist is incomplete — some PHP functions were not included on the forbidden list. An attacker with access to the admin panel (e.g., with the allowAdminChanges option enabled in a production environment, a compromised admin account, or access to the System Messages tool) can construct an appropriate payload in a Twig template and invoke the omitted PHP functions. The vulnerability affects both the 5.x and 4.x branches of the Craft CMS system.
An attacker with the required permissions can execute arbitrary code on the server side (RCE), read arbitrary system files, conduct SSRF or SSTI attacks, which could ultimately lead to complete system takeover and data compromise.
Craft CMS should be updated to version 5.9.0-beta.1 or 4.17.0-beta.1. Additionally, if not necessary, it is recommended to disable the allowAdminChanges option in production environments and restrict the number of accounts with access to the System Messages tool and admin panel.
Craft CMS in versions prior to 5.9.0-beta.1 and 4.17.0-beta.1
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XCraftcms Craft Cms
APPCraftcms4.0.05.0.0< 4.17.0< 5.9.0
Related vulnerabilities
Krytyczny RCE w Craft CMS — zdalne wykonanie kodu bez uwierzytelnienia
RCE w Craft CMS przez nieprawidłową konfigurację register_argc_argv
Craft CMS: RCE przez SSTI w polach szablonów Twig
SQL injection w Craft CMS przez endpoint GraphQL API
Craft CMS — zdalne wykonanie kodu (RCE) bez uwierzytelnienia