Cross-Site Scripting in dojoGHSA-536q-8gxx-m782
Fix: dojo/dojo#307GHSA-536q-8gxx-m782 is a Cross-site Scripting (XSS) vulnerability in dojo. 3 public exploit references exist, so weaponization risk is real. A fix is available for dojo — 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.
dojonpmDescription
Multiple cross-site scripting (XSS) vulnerabilities in Dojo 1.0.x before 1.0.3, 1.1.x before 1.1.2, 1.2.x before 1.2.4, 1.3.x before 1.3.3, and 1.4.x before 1.4.2 allow remote attackers to inject arbitrary web script or HTML via unspecified vectors, possibly related to dojo/resources/iframe_history.html, dojox/av/FLAudio.js, dojox/av/FLVideo.js, dojox/av/resources/audio.swf, dojox/av/resources/video.swf, util/buildscripts/jslib/build.js, and util/buildscripts/jslib/buildUtil.js, as demonstrated by the (1) dojoUrl and (2) testUrl parameters to util/doh/runner.html.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 📦npm | dojo | ≥ 1.13.0&&< 1.13.1 | 1.13.1npm install dojo@1.13.1 |
| 📦npm | dojo | ≥ 1.12.0&&< 1.12.4 | 1.12.4npm install dojo@1.12.4 |
| 📦npm | dojo | ≥ 1.11.0&&< 1.11.6 | 1.11.6npm install dojo@1.11.6 |
| 📦npm | dojo | ≥ 1.10.0&&< 1.10.10 | 1.10.10npm install dojo@1.10.10 |
Affected Products
dojodojotoolkitResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Dojo Toolkit 1.4.1 - '/doh/runner.html' Multiple Cross-Site Scripting Vulnerabilities
by Adam Bixby · Mar 15, 2010
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for dojo, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update dojo to 1.13.1 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-536q-8gxx-m782 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-536q-8gxx-m782 in your dependencies?
Find it across npm, including transitive dependencies.