CVE-2023-29525 is a critical-severity (CVSS 9.9) CWE-74 vulnerability in org.xwiki.platform:xwiki-platform-distribution-war. 2 public exploit references exist, so weaponization risk is real. A fix is available for org.xwiki.platform:xwiki-platform-distribution-war — see the affected versions and patch details below.
Privilege escalation from view right on XWiki.Notifications.Code.LegacyNotificationAdministration in xwiki-platform
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
- A successful exploit gives an attacker total control of the affected component, not partial access.
Exploitation and automatability from CISA’s SSVC triage for CVE-2023-29525.
EPSS Exploitation Probability
EPSS (Exploit Prediction Scoring System) is a daily probability model maintained by FIRST.org. It estimates the likelihood a CVE will be exploited in production environments within the next 30 days, derived from real-world threat intelligence signals.
How urgent is this, really
CVE-2023-29525 plotted by exploitation likelihood (EPSS) against impact (CVSS). The shaded corner — EPSS 50%+ and CVSS 7.0+ — is where this CVE sits: patch-first territory.
Where this sits among everything scored
Of 377,636 CVEs with a current EPSS score, this one falls in the 50–90% band (highlighted). Real counts from FIRST.org, not a sample — log-scaled since the landscape is heavily right-skewed.
Real-World Exposure
org.xwiki.platform:xwiki-platform-distribution-war☕org.xwiki.platform:xwiki-platform-distribution-war☕org.xwiki.platform:xwiki-platform-distribution-war☕org.xwiki.platform:xwiki-platform-legacy-events-hibernate-uiReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
Impact
Steps to reproduce:
Open <xwiki-host>/xwiki/bin/view/XWiki/Notifications/Code/LegacyNotificationAdministration?since=%7B%7B%2Fhtml%7D%7D+%7B%7Basync+async%3D%22true%22+cached%3D%22false%22+context%3D%22doc.reference%22%7D%7D%7B%7Bgroovy%7D%7Dprintln%28%22Hello+%22+%2B+%22from+groovy%21%22%29%7B%7B%2Fgroovy%7D%7D%7B%7B%2Fasync%7D%7D, where <xwiki-host> is the URL of your XWiki installation.
This demonstrates an XWiki syntax injection attack via the since-parameter, allowing privilege escalation from view to programming rights.
Patches
The vulnerability has been patched in XWiki 15.0-rc-1, 14.10.3, 14.4.8 and 14.10.3.
Workarounds
For versions >= 14.6-rc-1 the workaround is to modify the page XWiki.Notifications.Code.LegacyNotificationAdministration to add the missing escaping, as described on https://github.com/xwiki/xwiki-platform/commit/8e7c7f90f2ddaf067cb5b83b181af41513028754#diff-4e13f4ee4a42938bf1201b7ee71ca32edeacba22559daf0bcb89d534e0225949R70
For versions < 14.6-rc-1 the workaround is to modify the file <xwikiwebapp>/templates/distribution/eventmigration.wiki to add the missing escaping, as described on https://github.com/xwiki/xwiki-platform/commit/6d74e2e4aa03d19f0be385ab63ae9e0f0e90a766
References
https://jira.xwiki.org/browse/XWIKI-20287
For more information
If you have any questions or comments about this advisory:
- Open an issue in Jira XWiki.org
- Email us at Security Mailing List
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | org.xwiki.platform:xwiki-platform-distribution-war | ≥ 12.6.1&&< 13.10.11 | 13.10.11org.xwiki.platform:xwiki-platform-distribution-war:13.10.11 |
| ☕Maven | org.xwiki.platform:xwiki-platform-distribution-war | ≥ 14.0-rc-1&&< 14.4.8 | 14.4.8org.xwiki.platform:xwiki-platform-distribution-war:14.4.8 |
| ☕Maven | org.xwiki.platform:xwiki-platform-distribution-war | ≥ 14.5&&< 14.6-rc-1 | 14.6-rc-1org.xwiki.platform:xwiki-platform-distribution-war:14.6-rc-1 |
| ☕Maven | org.xwiki.platform:xwiki-platform-legacy-events-hibernate-ui | ≥ 14.6-rc-1&&< 14.10.3 | 14.10.3org.xwiki.platform:xwiki-platform-legacy-events-hibernate-ui:14.10.3 |
Research use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.xwiki.platform:xwiki-platform-distribution-war, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update org.xwiki.platform:xwiki-platform-distribution-war to 13.10.11 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2023-29525 is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
How O3 protects you
O3 Security's impact-aware SCA analyses which vulnerable code paths your application actually calls, so a match like CVE-2023-29525 can be triaged on real exposure rather than presence alone.
Tailored to CVE-2023-29525. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.
Frequently Asked Questions
Is CVE-2023-29525 in your dependencies?
O3 Security finds CVE-2023-29525 across Maven dependencies, including transitive ones, and its impact-aware SCA ranks findings by whether your code actually calls the vulnerable path.