When trying to create a document that already exists, XWiki displays an error message in the form for creating it. Due to missing escaping, this error message is vulnerable to raw HTML injection and thus XSS. The injected code is the document reference of the existing document so this requires that the attacker first creates a non-empty document whose name contains the attack code.
To reproduce, the following steps can be used:
<xwiki-host>/xwiki/bin/create/Main/WebHome?parent=&templateprovider=&spaceReference=&name=%3Cimg%20onerror=%22alert(1)%22%20src=%22test%22
where <xwiki-host>
is the URL of your XWiki installation.<xwiki-host>/xwiki/bin/create/Main/WebHome?parent=&templateprovider=&spaceReference=&name=%3Cimg%20onerror=%22alert(1)%22%20src=%22test%22
where <xwiki-host>
is the URL of your XWiki installation.If an alert with content "1" is displayed, the installation is vulnerable. This allows an attacker to execute arbitrary actions with the rights of the user opening the malicious link. Depending on the rights of the user, this may allow remote code execution and full read and write access to the whole XWiki installation.
This has been patched in XWiki 14.10.12 and 15.5RC1 by adding the appropriate escaping.
The vulnerable template file createinline.vm is part of XWiki's WAR and can be patched by manually applying the changes from the fix.
{ "nvd_published_at": "2023-10-25T21:15:10Z", "cwe_ids": [ "CWE-79" ], "severity": "CRITICAL", "github_reviewed": true, "github_reviewed_at": "2023-10-25T21:14:07Z" }