Your RSA-2048 keys break in 2030. Find every one of them before attackers do.
Maven

GHSA-jgg7-w2rj-58cj

CRITICAL

XWiki Platform vulnerable to privilege escalation from view right on XWiki.Notifications.Code.LegacyNotificationAdministration

Also known asCVE-2023-29525
Published
Apr 20, 2023
Updated
Nov 8, 2023
Affected
4 pkgs
Patched
4 / 4
Exploits
2 known

EPSS Exploitation Probability

via FIRST.org ↗
77.8%probability of exploitation in next 30 days
Very High Risk100th percentile+23.49%
1.38%32.7%64.0%95.4%24.0%77.8%Dec 25Apr 26Jun 26

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.

Blast Radius

4 pkgs affected
org.xwiki.platform:xwiki-platform-distribution-warorg.xwiki.platform:xwiki-platform-distribution-warorg.xwiki.platform:xwiki-platform-distribution-warorg.xwiki.platform:xwiki-platform-legacy-events-hibernate-ui

Real-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:

Affected Packages

4 total 4 fixed
EcosystemPackageVulnerable rangeFix
Mavenorg.xwiki.platform:xwiki-platform-distribution-war12.6.1&&< 13.10.1113.10.11
Mavenorg.xwiki.platform:xwiki-platform-distribution-war14.0-rc-1&&< 14.4.814.4.8
Mavenorg.xwiki.platform:xwiki-platform-distribution-war14.5&&< 14.6-rc-114.6-rc-1
Mavenorg.xwiki.platform:xwiki-platform-legacy-events-hibernate-ui14.6-rc-1&&< 14.10.314.10.3
Exploits & PoCs
2

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 dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for org.xwiki.platform:xwiki-platform-distribution-war. O3's reachability analysis confirms whether the vulnerable code path is actually invoked in your application, so you act on real exposure instead of every transitive match.

  2. 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 GHSA-jgg7-w2rj-58cj is resolved across your whole dependency graph.

  3. 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.

  4. How O3 protects you

    O3 pinpoints whether GHSA-jgg7-w2rj-58cj is reachable in your code and exactly where to fix it, then blocks exploitation in production at runtime until the patched version is deployed.

Tailored to GHSA-jgg7-w2rj-58cj. Runtime protection reduces exposure until a permanent patch is applied and verified — it complements patching, it doesn't replace it.

Frequently Asked Questions

### 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 XW
O3 Security · Impact-Aware SCA

Is GHSA-jgg7-w2rj-58cj in your dependencies?

O3 detects GHSA-jgg7-w2rj-58cj across Maven dependencies and uses function-level reachability to confirm whether the vulnerable code path is actually reachable — not just present. No false positives.