SiYuan before v3.8.4 Stored XSS via Unescaped Flashcard Content
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Passive
- 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 before v3.8.4 does not HTML-escape stored flashcard block content before interpolating it into the card-manager list markup. Block content returned by /api/riff/getRiffCards is inserted into a card item template in app/src/card/viewCards.ts and assigned to listElement.innerHTML, so content such as <img src=invalid onerror=...> becomes an executable event-handler attribute. Because the SiYuan desktop (Electron) main window is created with nodeIntegration enabled and contextIsolation disabled, an administrator who opens the card manager on a workspace containing attacker-supplied flashcard content (for example introduced through contribution or import) executes the attacker's script in a privileged renderer, which can lead to arbitrary code execution on the host. The affected endpoint remains behind authentication and administrator-role checks; this is an untrusted-content-to-privileged-renderer issue, not an authorization bypass.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- 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-100641
- 2026-10-03 Alias added: GHSA-wvmc-29rv-83j2
- 2026-10-05 CISA SSVC decision points changed
- 2026-10-05 Priority changed: LOW → HIGH
- 2026-10-25 EPSS moved to the 50th–90th percentile
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-100641 · CVE Program
- CVE-2026-100641 · NVD
- FIRST EPSS
- GHSA-wvmc-29rv-83j2 · 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