CVE-2025-24893 Splunk · SPL

Detect CVE-2025-24893 XWiki Platform Eval Injection Exploitation in Splunk

Detects exploitation of CVE-2025-24893, an eval injection vulnerability (CWE-95) in XWiki Platform that allows remote code execution via server-side template injection. This CVE is listed in CISA's Known Exploited Vulnerabilities catalog, indicating active exploitation in the wild. Attackers can craft malicious wiki content or URLs containing Groovy/Velocity template expressions that are evaluated server-side, leading to arbitrary code execution under the XWiki process context.

MITRE ATT&CK

Tactic
Initial Access Execution Persistence Lateral Movement

SPL Detection Query

Splunk (SPL)
spl
index=* sourcetype IN ("access_combined", "access_combined_wcookie", "iis", "nginx:plus:kv", "apache:access", "syslog", "java_log")
(
  (uri_path="*/xwiki/*" OR uri_path="*/bin/view*" OR uri_path="*/bin/edit*" OR uri_path="*/bin/save*")
  AND
  (
    (uri_query IN ("*%7B%7B*", "*groovy*", "*velocity*", "*%24%7B*", "*#set(*", "*Runtime*", "*exec(*"))
    OR (request IN ("*{{*", "*${*", "*groovy*", "*velocity*", "*Runtime.exec*", "*ProcessBuilder*"))
  )
)
OR
(
  sourcetype="syslog"
  process IN ("java", "xwiki", "catalina")
  message IN ("*groovy.lang*", "*ProcessBuilder*", "*Runtime.exec*", "*eval(*", "*xwiki.groovy*")
)
| eval threat_indicator="CVE-2025-24893 XWiki Eval Injection"
| eval severity="critical"
| stats count AS event_count, earliest(_time) AS first_seen, latest(_time) AS last_seen, values(src_ip) AS source_ips, values(uri_path) AS paths, values(uri_query) AS queries BY host, threat_indicator, severity
| where event_count > 0
| sort -event_count
critical severity medium confidence

Detects CVE-2025-24893 XWiki eval injection exploitation via HTTP access logs and Java/syslog process events indicating Groovy or Velocity template expression injection in XWiki URL paths and query parameters.

Data Sources

Web Access LogsSyslogJava Application Logs

Required Sourcetypes

access_combinediisnginx:plus:kvapache:accesssyslogjava_log

False Positives & Tuning

  • Legitimate XWiki administrators developing and testing Groovy-based macros or Velocity templates in sandbox environments
  • Automated vulnerability scanners running authorized assessments that replicate injection payloads in HTTP requests
  • XWiki internal processes using Groovy scripting for legitimate dynamic page rendering and macro execution
  • CI/CD pipelines performing automated testing of XWiki customizations that include template expression syntax

Other platforms for CVE-2025-24893


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.

  1. Test 1XWiki Velocity Template Expression Injection via URL Parameter

    Expected signal: Web server access log entry for GET request to /xwiki/bin/view/Main/WebHome with URL-encoded Velocity expression `#set($rt=$x.class.forName("java.lang.Runtime"))` and `exec("id")` in query parameters; Syslog or Java log entry showing Velocity evaluation; possible child process `id` spawned from Java parent.

  2. Test 2XWiki Groovy Script Injection via Wiki Page Edit API

    Expected signal: Web server access log showing PUT request to /xwiki/rest/wikis/xwiki/spaces/Main/pages/ with XML body containing `{{groovy}}` and `execute()` content. XWiki application log showing Groovy script evaluation event. Process event showing `id` command execution as child of Java process if the page is subsequently rendered.

  3. Test 3XWiki Post-Exploitation Reverse Shell via Groovy RCE

    Expected signal: Process event showing `bash` child process spawned from Java parent with command line containing `/dev/tcp/` indicating reverse shell. Network connection event from Java/bash process to attacker IP on port 4444. XWiki application log showing Groovy script evaluation. Syslog entries showing bash process activity under the XWiki service account.

  4. Test 4XWiki Eval Injection Scanner Simulation

    Expected signal: Multiple web server access log entries within a short time window for GET requests to /xwiki/bin/view/Main/WebHome with varying URL-encoded Groovy, Velocity, and FreeMarker injection payloads in query parameters from the same source IP.

Unlock Pro Content

Get the full detection package for CVE-2025-24893 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections