☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-55728

CVE-2025-55728 Remote Code Execution in Xwiki
📅 PUBLISHED: 2025-09-09 18:40 UTC 🔄 UPDATED: 2026-10-08 19:48 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.79%
👁️
0.79% probability
19.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
10.0
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-55728 is a critical remote code execution (RCE) vulnerability in the XWiki Remote Macros extension, versions 1.0 through 1.26.4. The flaw resides in the panel macro, where the classes parameter is not properly escaped before being processed as XWiki syntax. An authenticated user with edit rights on any page can inject arbitrary XWiki syntax, leading to server-side code execution. The CVSS score of 10.0 reflects the ease of exploitation and the full impact on confidentiality, integrity, and availability. No public proof-of-concept (PoC) or exploit code has been released at this time, but the vulnerability is considered highly dangerous due to the low privileges required and the potential for complete system compromise.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability affects the XWiki Remote Macros extension, which is distributed as a JAR artifact through the XWiki Extension Manager and Maven Central. Organizations using XWiki should verify their extension version and update immediately. The supply chain risk is moderate, as the extension is a standard component for Confluence migration, but the patch is available in version 1.26.5.

CVSS Breakdown & Threat Level

  • CVSS Score: 10.0 (Critical)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (any user with edit rights)
  • User Interaction: None
  • Scope: Changed (impact may extend beyond the vulnerable component)
  • Confidentiality Impact: High
  • Integrity Impact: High
  • Availability Impact: High

The threat level is critical. An attacker with minimal privileges can execute arbitrary code on the XWiki server, potentially leading to full server takeover, data exfiltration, or lateral movement within the network.

Deep Dive & Mechanics

The vulnerability is a classic injection flaw. The panel macro in XWiki Remote Macros accepts a classes parameter that is intended to specify CSS classes for the panel. However, the parameter value is directly concatenated into XWiki syntax without sanitization or escaping.

Root Cause: In the panel macro implementation, the classes parameter is embedded into a XWiki syntax string like {{panel classes="USER_INPUT"}}. Because the input is not escaped, an attacker can break out of the attribute context and inject arbitrary XWiki syntax.

Attack Vector: An attacker with edit rights on any page can craft a malicious panel macro call. For example:

{{panel classes="}} {{velocity}}$xwiki.getURL("", "view"){{/velocity}} "}}

This injects a Velocity script that executes arbitrary code on the server.

Impact: Successful exploitation allows the attacker to execute any Velocity or Groovy script, leading to RCE. This can be used to read/write files, execute system commands, or pivot to other systems.

Vulnerable vs. Patched Code

Vulnerable Code (version < 1.26.5):

// In PanelMacro.java
String classes = xwikiRequest.getParameter("classes");
// Directly used without escaping
String output = "{{panel classes=\"" + classes + "\"}}";

Patched Code (version 1.26.5):

// In PanelMacro.java
String classes = xwikiRequest.getParameter("classes");
// Properly escape the value for XWiki syntax
String escapedClasses = StringEscapeUtils.escapeXml(classes);
String output = "{{panel classes=\"" + escapedClasses + "\"}}";

The patch uses StringEscapeUtils.escapeXml() to escape the classes parameter, preventing injection of XWiki syntax.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to an XWiki instance with the Remote Macros extension (version < 1.26.5)
  • A user account with edit rights on any page

Exploitation Steps:

  1. Identify a page where you can edit content (e.g., a wiki page).
  2. Insert the following payload into the page content:
    {{panel classes="}} {{velocity}}$xwiki.getURL("", "view"){{/velocity}} "}}
    
  3. Save the page and view it. The injected Velocity script will execute, demonstrating RCE.
  4. For more advanced exploitation, use a payload that executes system commands:
    {{panel classes="}} {{velocity}}$xwiki.getShell().exec("id"){{/velocity}} "}}
    

Note: No public exploit code is available, but the above payloads are derived from the vulnerability description.

Blue Team

Detection:

  • Monitor XWiki logs for unusual panel macro usage with suspicious classes parameters.
  • Look for page edits containing patterns like {{panel classes="}} or {{velocity}}.
  • Use the detection rules provided below.

Hunting:

  • Search XWiki database for pages containing the string {{panel classes= and inspect the parameter value.
  • Review recent page edits for injection attempts.

Containment:

  • Immediately upgrade to version 1.26.5.
  • If upgrade is not possible, disable the Remote Macros extension temporarily.
  • Restrict edit permissions to trusted users only.

Indicators of Compromise (IOCs)

  • Network: HTTP requests containing {{panel classes= in the request body or URL parameters.
  • File System: Unexpected files in the XWiki data directory (e.g., /var/lib/xwiki/data/).
  • Process: Unusual child processes spawned by the XWiki JVM (e.g., id, whoami, curl).
  • Logs: XWiki log entries showing ERROR or WARN with stack traces related to Velocity or Groovy execution.
  • Database: Rows in the XWikiDocument table containing {{panel classes= with injected syntax.

Detection Engineering

YARA Rule

rule CVE_2025_55728_XWiki_RCE {
    meta:
        description = "Detects XWiki Remote Macros RCE attempt via panel macro classes parameter"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-55728"
    strings:
        $injection1 = "{{panel classes="
        $injection2 = "{{velocity}}"
        $injection3 = "{{groovy}}"
    condition:
        any of ($injection*) and #injection1 > 0
}

Sigma Rule

title: XWiki Remote Macros RCE via Panel Macro
id: 8f4a3b2c-1d5e-4f6a-9b8c-7d0e1f2a3b4c
status: experimental
description: Detects exploitation attempts of CVE-2025-55728 in XWiki logs
author: Valters IT
date: 2025-04-10
logsource:
    product: xwiki
    service: application
detection:
    selection:
        EventID: "ERROR"
        Message|contains:
            - "{{panel classes="
            - "{{velocity}}"
            - "{{groovy}}"
    condition: selection
falsepositives:
    - Legitimate use of panel macro with valid classes (rare)
level: critical

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-55728 XWiki Remote Macros RCE Attempt"; flow:to_server,established; content:"{{panel classes="; http_client_body; nocase; content:"{{velocity}}"; distance:0; within:100; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate:

  • Upgrade XWiki Remote Macros extension to version 1.26.5 or later.
  • If upgrade is not possible, disable the extension entirely.

Long-term:

  • Implement input validation and output encoding for all user-supplied parameters in XWiki macros.
  • Conduct a security review of all custom macros and extensions.
  • Enforce least privilege for wiki editors.

Compensating Controls:

  • Use a Web Application Firewall (WAF) to block requests containing {{panel classes= with suspicious content.
  • Monitor XWiki logs for anomalous Velocity or Groovy execution.
  • Restrict network access to the XWiki server.

Valters IT

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-55728/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.