Description
docsify prior to 4.11.4 is susceptible to Cross-site Scripting (XSS). Docsify.js uses fragment identifiers (parameters after # sign) to load resources from server-side .md files. Due to lack of validation here, it is possible to provide external URLs after the /#/ (domain.com/#//attacker.com) and render arbitrary JavaScript/HTML inside docsify page.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| — | docsify | All versions prior to 4.11.4 | — |
Public exploits
Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.
Exploit-DB 1
- Docsify.js 4.11.4 - Reflective Cross-Site Scripting EDB-48681 · webapps · Jul 22, 2020
Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| npm | docsify | < 4.11.4 | 4.11.4 | GHSA-qpqh-46qj-vwcw |
References
- https://github.com/docsifyjs/docsify/issues/1126
- https://github.com/docsifyjs/docsify/pull/1128
- https://snyk.io/vuln/SNYK-JS-DOCSIFY-567099
- http://packetstormsecurity.com/files/158515/Docsify.js-4.11.4-Cross-Site-Scripting.html
- 20210219 [KIS-2021-02] docsify <= 4.11.6 DOM-based Cross-Site Scripting Vulnerability mailing-list
- http://packetstormsecurity.com/files/161495/docsify-4.11.6-Cross-Site-Scripting.html