Remote code execution is possible via PDF export templates.
To reproduce on an installation, register a new user account with username PDFClass
if XWiki.PDFClass
does not exist.
On XWiki.PDFClass
, use the class editor to add a "style" property of type "TextArea" and content type "Plain Text".
Then, add an object of class PDFClass
and set the "style" attribute to $services.logging.getLogger('PDFClass').error("I got programming: $services.security.authorization.hasAccess('programming')")
.
Finally, go to <host>/xwiki/bin/export/Main/WebHome?format=pdf&pdftemplate=XWiki.PDFClass
. If the logs contain "ERROR PDFClass - I got programming: true", the instance is vulnerable.
This vulnerability has been patched in XWiki 14.10.20, 15.5.4 and 15.10-rc-1.
If PDF templates are not typically used on the instance, an administrator can create the document XWiki.PDFClass
and block its edition, after making sure that it does not contain a style
attribute.
Otherwise, the instance needs to be updated.
{ "nvd_published_at": "2024-04-10T20:15:08Z", "cwe_ids": [ "CWE-862" ], "severity": "CRITICAL", "github_reviewed": true, "github_reviewed_at": "2024-04-10T17:11:45Z" }