@vendure/admin-ui-plugin authenticated Cross-site Scripting vulnerabilityGHSA-gm68-572p-q28r
Fix: vendure-ecommerce/vendure@0cdc92bGHSA-gm68-572p-q28r is a remote code execution vulnerability in @vendure/admin-ui-plugin. A fix is available for @vendure/admin-ui-plugin — see the affected versions and patch details below.
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.
@vendure/admin-ui-pluginnpmDescription
Impact
Vendure provides an authorization system with different levels of privileges. For example, an administrator cannot create another administrator.
In the admin UI, there are a couple of places with description inputs, such as inventory/collection catalog, shipping methods, promotions, and more.
While the WYSIWYG editor allows limited customization, altering the request data (not in the ui) saves and returns arbitrary HTML with no sanitization. Causing an XSS when viewing the page.
The impact of this XSS is privilege escalation. A user that can write any type of description can trigger the attack. Then any other user that visits the vulnerable page is prone to arbitrary Javascript code execution, giving the attacker ability to execute actions on behalf of this user.
Patches
in progress
Workarounds
Is there a way for users to fix or remediate the vulnerability without upgrading?
References
Are there any links users can visit to find out more?
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | @vendure/admin-ui-plugin | all versions | 2.0.3npm install @vendure/admin-ui-plugin@2.0.3 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for @vendure/admin-ui-plugin, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update @vendure/admin-ui-plugin to 2.0.3 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-gm68-572p-q28r 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-gm68-572p-q28r in your dependencies?
Find it across npm, including transitive dependencies.