XSS in various backend modules due to (un)escaping in JS notification moduleGHSA-jfxf-4frr-9j3q
GHSA-jfxf-4frr-9j3q is a security vulnerability in neos/neos. A fix is available for neos/neos — see the affected versions and patch details below.
Real-World Exposure
neos/neos🐘neos/neos🐘neos/neos🐘neos/neos🐘neos/neos🐘neos/neosReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.
Description
The notification module displaying flash messages unscapes HTML coming from the server, resulting in XSS vulnerabilities with various names and labels of entities (eg. workspace title or media title). This however means you must be a logged in user with respective rights in the first place to leverage the attack vector.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐘Packagist | neos/neos | ≥ 3.3&&< 5.3.10 | 5.3.10composer require neos/neos:^5.3.10 |
| 🐘Packagist | neos/neos | ≥ 7.0.0&&< 7.0.9 | 7.0.9composer require neos/neos:^7.0.9 |
| 🐘Packagist | neos/neos | ≥ 7.1.0&&< 7.1.7 | 7.1.7composer require neos/neos:^7.1.7 |
| 🐘Packagist | neos/neos | ≥ 7.2.0&&< 7.2.6 | 7.2.6composer require neos/neos:^7.2.6 |
| 🐘Packagist | neos/neos | ≥ 7.3.0&&< 7.3.4 | 7.3.4composer require neos/neos:^7.3.4 |
| 🐘Packagist | neos/neos | ≥ 8.0.0&&< 8.0.2 | 8.0.2composer require neos/neos:^8.0.2 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for neos/neos, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update neos/neos to 5.3.10 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-jfxf-4frr-9j3q 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-jfxf-4frr-9j3q in your dependencies?
Find it across Packagist, including transitive dependencies.