Cross-site scripting (XSS) in the CKEditor 5 real-time collaboration packageGHSA-j3mm-wmfm-mwvh
GHSA-j3mm-wmfm-mwvh is a Cross-site Scripting (XSS) vulnerability in @ckeditor/ckeditor5-real-time-collaboration. A fix is available for @ckeditor/ckeditor5-real-time-collaboration — see the affected versions and patch details below.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
Real-World Exposure
How broadly this vulnerability is actually deployed: weekly install volume shows current usage, and reverse-dependency count shows how many other packages break if it stays unpatched.
@ckeditor/ckeditor5-real-time-collaborationnpmckeditor5-premium-featuresnpmDescription
Impact
During a recent internal audit, we identified a Cross-Site Scripting (XSS) vulnerability in the CKEditor 5 real-time collaboration package. This vulnerability can lead to unauthorized JavaScript code execution and affects user markers, which represent users' positions within the document.
This vulnerability affects only installations with Real-time collaborative editing enabled.
Patches
The problem has been recognized and patched. The fix will be available in version 44.2.1 (and above).
For more information
Email us at [email protected] if you have any questions or comments about this advisory.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | @ckeditor/ckeditor5-real-time-collaboration | ≥ 41.3.0&&< 44.2.1 | 44.2.1npm install @ckeditor/ckeditor5-real-time-collaboration@44.2.1 |
| 📦npm | ckeditor5-premium-features | ≥ 42.0.0&&< 44.2.1 | 44.2.1npm install ckeditor5-premium-features@44.2.1 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for @ckeditor/ckeditor5-real-time-collaboration, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update @ckeditor/ckeditor5-real-time-collaboration to 44.2.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-j3mm-wmfm-mwvh is resolved across your whole dependency graph.
Workarounds
Escape or sanitise the affected output on the server side rather than relying on client-side filtering, and add a Content-Security-Policy that blocks inline script execution so injected markup cannot run even if it reaches the page.
Frequently Asked Questions
Is GHSA-j3mm-wmfm-mwvh in your dependencies?
Find it across npm, including transitive dependencies.