CVE-2023-37909:
Privilege escalation (PR)/remote code execution from account through Menu.UIExtensionSheet
8.8
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.92862%
CWE
Published
10/25/2023
Updated
11/10/2023
KEV Status
No
Technology
Java
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
org.xwiki.platform:xwiki-platform-menu | maven | >= 5.1-rc-1, < 14.10.8 | 14.10.8 |
org.xwiki.platform:xwiki-platform-menu-ui | maven | >= 5.1-rc-1, < 14.10.8 | 14.10.8 |
org.xwiki.platform:xwiki-platform-menu-ui | maven | >= 15.0-rc-1, < 15.3-rc-1 | 15.3-rc-1 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from missing output escaping in the Menu.UIExtensionSheet document's Velocity template. The commit diff shows three critical changes adding $escapetool.xml() escaping:
- Around localization render calls for extension point titles
- Around the extensionPointId value in option tags
Without this escaping, user-controlled input (like Groovy/Python macros in extensionPointId) would be rendered as raw HTML/script content. This matches the attack pattern described where {{/html}} closing tags and macro syntax could break out of HTML context to execute scripts. The vulnerability manifests in template rendering functions that handle UI extension configuration display, making the Velocity template code responsible for outputting these values the clear vulnerable component.