{"id":"CVE-2026-65606","title":"SiYuan before v3.7.2 contains a cross-site scripting vulnerability in the siyuan:// protocol handler","summary":"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 t…","severity":"critical","cvss":9.6,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H","cwe":["CWE-79"],"vendor":"siyuan-note","product":"siyuan","affected":["siyuan < 3.7.2"],"published":"2026-07-23","updated":"2026-09-17","sourceUpdated":"2026-09-17T18:17:01.133","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-65606","references":[{"url":"https://github.com/siyuan-note/siyuan/commit/41f2861c87575ff5ac4b50a0520b1a4fe55b4a70","label":"disclosure@vulncheck.com"},{"url":"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-wp64-x7qh-h728","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/siyuan-before-cross-site-scripting-to-rce","label":"disclosure@vulncheck.com"},{"url":"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-wp64-x7qh-h728","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"}],"tags":["nvd","cve.org","exploit-available"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"no","technicalImpact":"total","timestamp":"2026-07-23T15:48:00.697371Z"},"epss":0.00648,"epssPercentile":0.49691,"ingestedAt":"2026-09-17T18:25:15.979Z","slug":"CVE-2026-65606","body":"## Overview\n\nSiYuan 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.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"abyssal","depthScore":65,"depthScoreParts":{"impact":52.8,"likelihood":0.1,"exploitation":12,"ransomware":0},"changes":[]}