Description
SiYuan before v3.7.2 contains a cross-site scripting vulnerability in the siyuan:// protocol handler. When a siyuan://plugins/<name> link references a name that is not an installed plugin, the application opens a custom tab and inserts the link's icon parameter into the tab header via innerHTML without escaping it (app/src/layout/Tab.ts), allowing injection of an <img onerror=...> element. Because the SiYuan Desktop renderer runs with nodeIntegration:true, the injected JavaScript can access Node's require and call require('child_process').execSync(...), escalating the cross-site scripting into arbitrary operating-system command execution.
Metrics
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:HWeakness enumeration
Affected software
| Vendor | Product | Versions |
|---|---|---|
| siyuan-note | siyuan | < 3.7.2 |
References
- https://github.com/siyuan-note/siyuan/commit/41f2861c87575ff5ac4b50a0520b1a4fe55b4a70
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-wp64-x7qh-h728
- https://www.vulncheck.com/advisories/siyuan-before-cross-site-scripting-to-rce
- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-wp64-x7qh-h728
Timeline
- Published
- Jul 23, 2026
- Last modified
- Sep 17, 2026
- NVD status
- Deferred