Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSeed malicious flashcard content via import/contribution
-
DeliveryAdmin opens card manager
-
ExploitgetRiffCards returns unescaped block content
-
ExecutioninnerHTML renders onerror handler
-
PersistScript runs in privileged Electron renderer
-
ImpactArbitrary code execution on host
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires: (1) the SiYuan desktop Electron client (the nodeIntegration-enabled, contextIsolation-disabled main window is what turns XSS into host RCE); (2) an authenticated administrator account - the /api/riff/getRiffCards endpoint stays behind auth and admin-role checks (PR:L); (3) attacker-controlled flashcard block content already stored in the target workspace, introduced via import, contribution, or shared/synced documents; and (4) user interaction - the administrator must actively open the card manager for the malicious content to be rendered into listElement.innerHTML (UI:P). Versions before v3.8.4 are affected. These conditions - desktop Electron build, admin who opens the specific manager view, and pre-planted content - meaningfully constrain exploitation to targeted scenarios rather than broad remote attack. |
| Impact | This is a genuine but conditionally-gated remote-code-execution risk that sits below its 8.6 CVSS-4.0 headline in practical urgency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H) correctly captures the two limiting factors: the flaw requires an authenticated administrator (PR:L) and active user interaction - the admin must actually open the card manager (UI:P). No EPSS score, no CISA KEV listing, and no public POC are provided, so all three real-world-exploitation signals are absent; there is only a confirmed patch and vendor/VulnCheck advisory. The vendor's SC:N/SI:N/SA:N (no subsequent-system impact) arguably understates the danger, because the whole point is that script running in a nodeIntegration=ON, contextIsolation=OFF Electron renderer escalates from XSS to host code execution - a CWE-79 that behaves like an RCE. Net: a real, high-technical-impact bug worth patching, but not a mass-exploitation emergency - it demands attacker-supplied content already resident in the workspace plus a privileged human opening the flashcard manager, which points to targeted rather than opportunistic abuse. |
| Exploit ScenarioDerived | An attacker seeds malicious flashcard block content (e.g. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
Stored cross-site scripting in SiYuan Note before v3.8.4 lets attacker-supplied flashcard block content run script inside the desktop client's privileged Electron renderer, which is created with nodeIntegration enabled and contextIsolation disabled, escalating the XSS to arbitrary code execution on the host. Per the independent assessment, exploitation is meaningfully gated: it requires the SiYuan desktop Electron client, an authenticated administrator account (the /api/riff/getRiffCards endpoint keeps its auth and admin-role checks), attacker-controlled flashcard content already planted in the workspace via import, contribution, or shared/synced documents, and the administrator actively opening the card manager view - so this is a targeted, condition-gated RCE risk rather than a broadly exploitable one, despite the 8.6 CVSS-4.0 headline. No public exploit code was identified at time of analysis and active exploitation is not confirmed; vendor fixes are available in v3.8.4.
RemediationAI
Upgrade to SiYuan v3.8.4 or later, which is the vendor-released fix for this issue, and verify the application of the upstream commits 1ecb1c07de497ff03b585536fe5579291754d96b, 48c354e7de130aaada9d7120125bbc768344fd3b, 41b14025b4ac4a8379d1200580344ca18ad152b7, and 8641553a1f07374001902d3ce773285db1292b2d; consult the advisory at https://github.com/siyuan-note/siyuan/security/advisories/GHSA-2mmf-4xwm-55rm for the authoritative version guidance. If immediate upgrade is not possible, the highest-value compensating control is to harden the Electron renderer configuration by enabling contextIsolation and disabling nodeIntegration for the main window - but this is a disruptive change that can break parts of the desktop client whose functionality depends on direct Node.js access in the renderer, so it must be tested before deployment. Additionally, treat flashcard/workspace content as untrusted input: do not import, sync, or contribute from untrusted sources, and avoid opening the card manager on any workspace not known to be clean, since the payload only fires when an admin renders that view (the same restriction that makes the attack require UI:P interaction). Because only administrators can reach the endpoint and trigger rendering, limiting administrator use of untrusted synced workspaces on desktop clients measurably reduces exposure; note that this is a behavioral control with no technical enforcement and does not remove the vulnerability.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-79 (improper neutralization of input during web page generation, i.e. cross-site scripting) realized as a stored XSS through an unsafe DOM sink. Flashcard block content returned by the backend endpoint /api/riff/getRiffCards is interpolated into a card-item template in app/src/card/viewCards.ts and handed to listElement.innerHTML, so markup such as <img src=invalid onerror=...> is parsed as live HTML and the injected string becomes an executable event-handler attribute rather than inert text. What turns a client-side XSS into host-level compromise is the Electron architecture: the SiYuan desktop main window is configured with nodeIntegration enabled and contextIsolation disabled, so script executing in that renderer shares the Node.js runtime and can reach host-level APIs - the definition of an untrusted-content-to-privileged-renderer issue rather than an authorization bypass. The referenced commits (1ecb1c07de497ff03b585536fe5579291754d96b, 48c354e7de130aaada9d7120125bbc768344fd3b, 41b14025b4ac4a8379d1200580344ca18ad152b7, 8641553a1f07374001902d3ce773285db1292b2d) rework the card-manager rendering and pagination path in app/src/card/viewCards.ts, where the unescaped block content was being written into the list markup. The affected package is tracked as CPE cpe:2.3:a:siyuan-note:siyuan:*:*:*:*:*:*:*:*.
Know when Siyuan gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Stored content delivered over network (AV:N) but needs an authed admin (PR:L) to open the manager (UI:R); script escapes the web sandbox into the privileged Electron host (S:C) yielding full C/I/A via code execution.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
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.
Technical POC Analysis
CWE-79 (Improper Neutralization of Input During Web Page Generation - stored cross-site scripting).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A stored cross-site scripting flaw in the SiYuan Note desktop application (versions before v3.8.4) can escalate to arbitrary code execution on an employee's workstation when a specially crafted flashcard is opened in the card manager. Impact is concentrated on individual endpoints running the SiYuan desktop client with administrative privileges, where a successful attack could give an adversary the same access as the logged-in user and expose any data or credentials reachable from that machine. Leadership should treat this as a targeted, condition-gated risk affecting a limited user population rather than a broad, internet-facing exposure.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements
SQL injection in SiYuan personal knowledge-management software (all versions before v3.7.3) lets attackers inject arbitr
A SQL injection vulnerability was discovered in Siyuan 3.1.11 in /getHistoryItems. Rated critical severity (CVSS 9.8), t
A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the ids array parameter in /batchGetBlockAttrs. R
A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the id parameter at /getAssetContent. Rated criti
A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the notebook parameter in /searchHistory. Rated c
SiYuan personal knowledge management system prior to 3.5.4 has a stored XSS vulnerability (CVSS 9.6) that allows code ex
Remote code execution in SiYuan note-taking application (before v3.6.1) allows any malicious Bazaar marketplace package
Origin-validation bypass in SiYuan Note (open-source personal knowledge management) before 3.7.0 lets any installed Chro
Reflected XSS in SiYuan knowledge management before 3.5.9.
SiYuan knowledge management system prior to 3.5.5 has a path traversal in /api/file/copyFile allowing arbitrary file ope
SiYuan version 3.0.3 allows executing arbitrary commands on the server. Rated critical severity (CVSS 9.0), this vulnera
EUVD-2026-87735
GHSA-wvmc-29rv-83j2
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB