CVE-2024-31981: 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".
Published Apr 10, 2024
Affected packages
org.xwiki.platform:xwiki-platform-oldcore
- Ecosystem
- Maven
- Affected
- >= 3.0.1, < 14.10.20
- Fixed in
- 14.10.20
- Check
mvn dependency:tree -Dincludes=org.xwiki.platform:xwiki-platform-oldcore
org.xwiki.platform:xwiki-platform-oldcore
- Ecosystem
- Maven
- Affected
- >= 15.0-rc-1, < 15.5.4
- Fixed in
- 15.5.4
- Check
mvn dependency:tree -Dincludes=org.xwiki.platform:xwiki-platform-oldcore
org.xwiki.platform:xwiki-platform-oldcore
- Ecosystem
- Maven
- Affected
- >= 15.6-rc-1, < 15.10-rc-1
- Fixed in
- 15.10-rc-1
- Check
mvn dependency:tree -Dincludes=org.xwiki.platform:xwiki-platform-oldcore
Advisory details
From the GitHub Advisory Database (CC BY 4.0).
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
- https://jira.xwiki.org/browse/XWIKI-21337
- https://github.com/xwiki/xwiki-platform/commit/d28e21a670c69880b951e415dd2ddd69d273eae9
References
- https://github.com/xwiki/xwiki-platform/security/advisories/GHSA-vxwr-wpjv-qjq7
- 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://jira.xwiki.org/browse/XWIKI-21337
- https://nvd.nist.gov/vuln/detail/CVE-2024-31981
- https://github.com/advisories/GHSA-vxwr-wpjv-qjq7
How this page is made: the data panel comes from the GitHub Advisory Database, CISA’s KEV catalog, the NVD and FIRST EPSS, and updates twice a day. No analysis has been written for this entry yet. Methodology
More Maven vulnerabilities
All Maven entriesCVE-2024-56158
XWiki allows SQL injection in query endpoint of REST API with Oracle
critical9.3Jun 12, 2025CVE-2024-43400
XWiki Platform allows XSS through XClass name in string properties
critical9.0Aug 19, 2024CVE-2024-37899
XWiki Platform allows remote code execution from user account
critical9.0Jun 20, 2024CVE-2024-31987
XWiki Platform remote code execution from account via custom skins support
critical9.9Apr 10, 2024
