XWiki Platform: Privilege escalation (PR) from user registration through PDFClass
Impact
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.
Patches
This vulnerability has been patched in XWiki 14.10.20, 15.5.4 and 15.10-rc-1.
Workarounds
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.
References
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Java / Kotlin (Maven) | org.xwiki.platform:xwiki-platform-oldcore | >= 3.0.1, < 14.10.20, >= 15.0-rc-1, < 15.5.4, >= 15.6-rc-1, < 15.10-rc-1 | 14.10.20, 15.5.4, 15.10-rc-1 |
References
- https://github.com/xwiki/xwiki-platform/security/advisories/GHSA-vxwr-wpjv-qjq7
- https://nvd.nist.gov/vuln/detail/CVE-2024-31981
- https://github.com/xwiki/xwiki-platform/commit/480186f9d2fca880513da8bc5a609674d106cbd3
- https://github.com/xwiki/xwiki-platform/commit/a4ad14d9c1605a5ab957237e505ebbb29f5b9d73
- https://github.com/xwiki/xwiki-platform/commit/d28e21a670c69880b951e415dd2ddd69d273eae9
- https://github.com/xwiki/xwiki-platform
- https://jira.xwiki.org/browse/XWIKI-21337
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H- Weakness (CWE)
CWE-862- Platform
- Java / Kotlin (Maven)
- Package
org.xwiki.platform:xwiki-platform-oldcore- Disclosed
- 10.04.2024
- Updated
- 11.10.2026 13:20
Sources and licenses
OSV / GitHub Advisory Database - GHSA-vxwr-wpjv-qjq7 - CC BY 4.0
Vulnerability history: org.xwiki.platform:xwiki-platform-oldcore
All published vulnerabilities of this package (Java / Kotlin (Maven)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 46
- First → latest
- 09.2020 07.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Critical 12
- High 17
- Medium 15
- Low 2
Disclosures per year
- 2020: 2
- 2021: 1
- 2022: 12
- 2023: 15
- 2024: 7
- 2025: 6
- 2026: 3
-
XWiki Platform: Privilege escalation (PR) from user registration through PDFClass this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.