Detect RoundCube Webmail Deserialization of Untrusted Data (CVE-2025-49113) in Splunk
CVE-2025-49113 is an actively exploited deserialization of untrusted data vulnerability (CWE-502) in Roundcube Webmail. When exploited, an attacker can send a specially crafted serialized PHP object via the web interface, leading to remote code execution on the underlying server. This vulnerability is listed in CISA's Known Exploited Vulnerabilities catalog and requires immediate patching to versions 1.5.10 or 1.6.11.
MITRE ATT&CK
- Tactic
- Initial Access Execution Persistence
SPL Detection Query
index=web OR index=proxy OR index=waf sourcetype IN (access_combined, iis, apache:access, nginx:plus:kv)
| where (uri_path IN ("/index.php", "/roundcube/index.php") OR uri_path LIKE "%roundcube%")
| eval serialized_in_uri=if(match(uri_query, "(O%3A|a%3A|s%3A|O:\\d+:|a:\\d+:|s:\\d+:)"), 1, 0)
| eval serialized_in_body=if(match(_raw, "(O:\\d+:\\"[a-zA-Z]+\"|a:\\d+:\\{|s:\\d+:\\")"), 1, 0)
| where serialized_in_uri=1 OR serialized_in_body=1
| eval attack_stage=case(
match(uri_query, "_action=show"), "mail-read-exploitation",
match(uri_query, "_task=mail"), "mail-task-exploitation",
match(uri_query, "_action=upload"), "upload-exploitation",
true(), "generic-deserialization"
)
| stats count AS request_count, values(uri_path) AS paths, values(uri_query) AS queries, dc(src_ip) AS unique_sources BY src_ip, attack_stage, host
| where request_count >= 1
| sort -request_count Detects PHP deserialization patterns in HTTP requests targeting Roundcube Webmail endpoints across web access logs, WAF logs, and proxy logs.
Data Sources
Required Sourcetypes
False Positives & Tuning
- Penetration testing activities against Roundcube installations
- Legitimate Roundcube features that encode session data in URL-safe serialized formats
- Security scanners performing automated vulnerability assessments
- Custom plugins or integrations using PHP serialization in HTTP parameters
Other platforms for CVE-2025-49113
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 1Roundcube Deserialization Probe via GET Parameter
Expected signal: HTTP GET request to Roundcube /index.php with O%3A in query string captured in web access logs; PHP error log may show unserialize() invocation
- Test 2Roundcube POST Body Deserialization with Crafted Object
Expected signal: POST request to Roundcube /index.php with serialized object in body captured by WAF or proxy; PHP error log records unserialize call or type error
- Test 3Web Shell Drop via Simulated Roundcube RCE
Expected signal: File creation event in Roundcube web root (inotify/auditd/EDR file write event); new .php file with non-standard name in web root directory
- Test 4Outbound Reverse Shell from PHP Process (Post-Exploitation Simulation)
Expected signal: Process creation event: www-data spawning bash with /dev/tcp redirect; outbound TCP connection from web server worker to port 4444; EDR network connection alert for web process initiating outbound shell
Unlock Pro Content
Get the full detection package for CVE-2025-49113 including response playbook, investigation guide, and atomic red team tests.