CVE-2024-55877: XWiki allows remote code execution from account through macro descriptions and XWiki.XWikiSyntaxMacrosList
10
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.98348%
CWE
Published
12/12/2024
Updated
12/12/2024
KEV Status
No
Technology
Java
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| org.xwiki.platform:xwiki-platform-help-ui | maven | >= 9.7-rc-1, < 15.10.11 | 15.10.11 |
| org.xwiki.platform:xwiki-platform-help-ui | maven | >= 16.0.0-rc-1, < 16.4.1 | 16.4.1 |
| org.xwiki.platform:xwiki-platform-help-ui | maven | >= 16.5.0-rc-1, < 16.5.0 | 16.5.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from improper output escaping in the XWikiSyntaxMacrosList page's rendering logic. The #translateOrElse macro in the Velocity template handled untrusted user input (macro descriptions) without adequate escaping. Before the patch, when a translation key wasn't found, it directly output the fallback value ($fallback) without sanitization. This allowed attackers to inject Groovy code via macro descriptions that would execute when the macros list was rendered. The commit 40e1afe explicitly adds $services.rendering.escape() to the fallback output path, confirming this was the vulnerable code path. The test cases added in the patch verify proper escaping of dangerous characters, further validating this as the root cause.