Detect CVE-2025-32432: Craft CMS Remote Code Injection in Elastic Security
Detects exploitation of CVE-2025-32432, a critical code injection vulnerability (CWE-94) in Craft CMS that allows remote attackers to execute arbitrary code. This vulnerability is actively exploited in the wild (CISA KEV) and targets Craft CMS installations via malicious template or input injection vectors.
MITRE ATT&CK
- Tactic
- Initial Access Execution Persistence
Elastic Detection Query
sequence by source.ip with maxspan=5m
[network where event.category == "network" and http.request.method == "POST"
and (url.path : "*/actions/*" or url.path : "*/admin/*" or url.path : "*/index.php*")
and (
url.query : "*phpinfo*" or url.query : "*base64_decode*" or url.query : "*eval(*"
or url.query : "*system(*" or url.query : "*exec(*" or url.query : "*assert(*"
or http.request.body.content : "*phpinfo*" or http.request.body.content : "*eval(*"
or http.request.body.content : "*base64_decode*"
)
]
[process where event.category == "process" and event.type == "start"
and process.parent.name in ("php", "php-fpm", "apache2", "httpd", "nginx")
and process.name in ("sh", "bash", "python", "python3", "curl", "wget", "nc", "ncat")
] EQL sequence detecting a Craft CMS code injection HTTP POST followed within 5 minutes by a suspicious child process spawned from a web server parent, indicating successful RCE from CVE-2025-32432.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate web application deployments that spawn shell processes as part of build or deploy hooks
- PHP-based automation scripts executed by the web server as part of scheduled tasks
- Security testing frameworks generating synthetic web and process telemetry in the same environment
Other platforms for CVE-2025-32432
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1CVE-2025-32432 PHP Info Probe via Craft CMS Action Endpoint
Expected signal: HTTP POST to /actions/test with 'phpinfo()' in request body; web server access log entry; potential 200 response with PHP environment disclosure
- Test 2CVE-2025-32432 Base64-Encoded Command Injection
Expected signal: HTTP POST to /actions/users/login with 'base64_decode' in POST body; web server log capturing encoded payload; potential process spawn of 'id' command from php parent
- Test 3CVE-2025-32432 Webshell Drop via File Write Injection
Expected signal: POST to /actions/ with file_put_contents payload; new file 'shell.php' created in web root with anomalous timestamp; subsequent GET to /shell.php with cmd parameter; process execution of 'id' spawned from PHP
- Test 4CVE-2025-32432 Reverse Shell Payload Simulation
Expected signal: HTTP POST to Craft CMS action endpoint with bash reverse shell command in body; outbound TCP connection from web server to attacker IP on port 4444; process tree showing bash spawned from php parent; network flow anomaly for web server initiating outbound connection
Unlock Pro Content
Get the full detection package for CVE-2025-32432 including response playbook, investigation guide, and atomic red team tests.