Skip to content

XWiki Commons missing escaping of `{` in Velocity escapetool allows remote code execution

Critical severity GitHub Reviewed Published Apr 10, 2024 in xwiki/xwiki-commons • Updated Apr 10, 2024

Package

maven org.xwiki.commons:xwiki-commons-velocity (Maven)

Affected versions

>= 3.0.1, < 14.10.19
>= 15.0-rc-1, < 15.5.4
>= 15.6-rc-1, < 15.9-rc-1

Patched versions

14.10.19
15.5.4
15.9-rc-1

Description

Impact

The HTML escaping of escaping tool that is used in XWiki doesn't escape {, which, when used in certain places, allows XWiki syntax injection and thereby remote code execution.

To reproduce in an XWiki installation, open <xwiki-host>/xwiki/bin/view/Panels/PanelLayoutUpdate?place=%7B%7B%2Fhtml%7D%7D%7B%7Basync%20async%3Dfalse%7D%7D%7B%7Bvelocity%7D%7D%23evaluate(%24request.eval)%7B%7B%2Fvelocity%7D%7D%7B%7B%2Fasync%7D%7D&eval=Hello%20from%20URL%20Parameter!%20I%20got%20programming%3A%20%24services.security.authorization.hasAccess(%27programming%27) where <xwiki-host> is the URL of your XWiki installation. If this displays You are not admin on this place Hello from URL Parameter! I got programming: true, the installation is vulnerable.

Patches

The vulnerability has been fixed on XWiki 14.10.19, 15.5.5, and 15.9 RC1.

Workarounds

Apart from upgrading, there is no generic workaround. However, replacing $escapetool.html by $escapetool.xml in XWiki documents fixes the vulnerability. In a standard XWiki installation, we're only aware of the document Panels.PanelLayoutUpdate that exposes this vulnerability, patching this document is thus a workaround. Any extension could expose this vulnerability and might thus require patching, too.

References

References

@michitux michitux published to xwiki/xwiki-commons Apr 10, 2024
Published to the GitHub Advisory Database Apr 10, 2024
Reviewed Apr 10, 2024
Published by the National Vulnerability Database Apr 10, 2024
Last updated Apr 10, 2024

Severity

Critical
10.0
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H

Weaknesses

CVE ID

CVE-2024-31996

GHSA ID

GHSA-hf43-47q4-fhq5

Source code

Checking history
See something to contribute? Suggest improvements for this vulnerability.