SiYuan before v3.8.4 Cross-Site Scripting via Kramdown IAL
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-79.
Summary
SiYuan v3.8.3 fails to HTML-escape the data-subtype attribute when generating gutter-button markup (app/src/protyle/gutter/button.ts, assigned via innerHTML in app/src/protyle/gutter/index.ts) from content pasted as plain-text Markdown containing a Kramdown inline attribute list (IAL). Because the shared Lute renderer parses Kramdown IAL from text/plain input, an attacker-supplied Markdown snippet using entity-encoded quotes in data-subtype breaks out of the attribute value when the gutter markup is re-parsed by the browser, injecting additional attributes such as autofocus and onfocus. If a victim pastes the crafted Markdown and the affected gutter control receives focus, the injected handler executes; in the Electron desktop application, where the main BrowserWindow enables Node integration and disables context isolation, this results in JavaScript execution with renderer Node.js privileges (remote code execution). Fixed in v3.8.4.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| siyuan-note | siyuan | before 3.8.4 | 3.8.4 | Patch available | CNA |
- siyuan Vendorsiyuan-note Affected before 3.8.4 Fixed in 3.8.4 Patch available CNA
CPE names Threatist (inferred) · 1
Inferred from how NVD named this product before; not given by a source.
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:* | — | — | siyuan-note |
- cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:* Versions — — ·siyuan-note
Remediation
- Fix · CNA siyuan (siyuan-note) Fixed in 3.8.4
Fixed in the same release
Records fixed by the same vendor advisory or release, as the CNA lists them.
- Release ·
siyuan-note siyuan 3.8.4
14 records Highest priority Priority HIGH 11 HIGH, 2 MEDIUM, 1 LOW
Other records, highest priority first
- TI-2026-64804 SiYuan before v3.8.4 SQL Injection via dailyNoteSavePathPriority HIGH 77
- TI-2026-64806 SiYuan before v3.8.4 Authentication Bypass via Missing Origin HeaderPriority HIGH 72
- TI-2026-64805 SiYuan 3.7.0 before 3.8.4 Stored XSS via Gallery KanbanPriority HIGH 72
Timeline
- 2026-10-02 Threatist record created from CVE-2026-100639
- 2026-10-03 Alias added: GHSA-r9x8-34vf-7m8q
References
More siyuan-note vulnerabilities
- TI-2026-48492 SiYuan before v3.7.3 SQL Injection via searchDocs CVSS 4.0CRITICAL 9.9
- TI-2026-48491 SiYuan before v3.7.3 SQL Injection via searchEmbedBlock CVSS 4.0CRITICAL 9.9
- TI-2026-48490 SiYuan before v3.7.3 SQL Injection via fullTextSearchAssetContent CVSS 4.0CRITICAL 9.9
- TI-2026-47010 SiYuan before v3.7.2 Unauthenticated Administrator Takeover via MCP CVSS 4.0CRITICAL 10.0
- TI-2026-26050 SiYuan has directory traversal within its publishing service CVSS 3.1CRITICAL 9.8
- TI-2026-25256 SiYuan: Authorization Bypass Allows Arbitrary SQL Execution via Search API CVSS 3.1CRITICAL 9.8
Sources
- CVE-2026-100639 · CVE Program
- CVE-2026-100639 · NVD
- FIRST EPSS
- GHSA-r9x8-34vf-7m8q · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences