Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft Markdown with malicious Kramdown IAL data-subtype
-
DeliveryDeliver snippet for victim to copy
-
ExploitVictim pastes plain-text into SiYuan
-
ExecutionLute renders unescaped gutter markup via innerHTML
-
PersistInjected onfocus fires on gutter focus
-
ImpactExecute JS with renderer Node.js privileges (RCE)
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 victim to paste attacker-supplied plain-text Markdown containing a Kramdown inline attribute list into SiYuan, and (2) the resulting gutter control to receive focus, triggering the injected onfocus handler - both captured by UI:A in the vector. Full RCE additionally requires the Electron DESKTOP application build, whose main BrowserWindow enables Node integration and disables context isolation; on the web/browser deployment the impact is limited to XSS without Node.js code execution. Affected versions are all releases before v3.8.4. Limiting factors: the mandatory paste-and-focus user interaction and the desktop-Electron-with-Node-integration requirement significantly constrain mass or unattended exploitation. |
| Impact | This is a genuine high-severity issue with credible RCE potential, but its real-world risk is materially gated by required user interaction. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H) scores 8.6 and correctly encodes UI:A (active user interaction), meaning this is NOT drive-by remote exploitation despite PR:N - the victim must paste attacker-crafted Markdown and then focus the affected gutter control. The full C:H/I:H/A:H impact is only realized in the Electron desktop build, where the main BrowserWindow enables Node integration and disables context isolation, turning DOM-level XSS into renderer-level Node.js RCE; in a plain browser/web deployment the same flaw is 'only' XSS. No EPSS score, no CISA KEV listing, and no public POC are present in the provided data, so there is no signal of active or automatable exploitation - this is a patch-and-move-on item rather than an emergency. The PR:N in the vector may read as 'unauthenticated' but exploitation realistically depends on socially engineering a user of their own note-taking app into pasting hostile content, which is closer to a targeted/opportunistic phishing-style vector than mass exploitation. |
| Exploit ScenarioDerived | An attacker crafts a plain-text Markdown snippet containing a Kramdown inline attribute list (IAL) with entity-encoded quotes in data-subtype, then lures a SiYuan desktop user into copying and pasting it (e.g., from a shared note, forum, or document). When the shared Lute renderer re-parses the pasted text and the gutter button markup is inserted via innerHTML, the broken-out attribute injects an autofocus/onfocus handler; once the gutter control receives focus, the handler runs and, in the Electron app with Node integration, executes arbitrary code with renderer Node.js privileges. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 26, 2026
SiYuan versions before 3.8.4 contain a cross-site scripting (XSS) flaw that allows attribute injection into gutter-button markup when a victim pastes attacker-controlled plain-text Markdown containing a Kramdown inline attribute list (IAL); on the Electron desktop build with Node integration enabled and context isolation disabled, this escalates to remote code execution with renderer Node.js privileges. Exploitation is unauthenticated (PR:N) but requires user interaction-the victim must paste the crafted Markdown and then focus the affected gutter control. No public exploit code has been identified at time of analysis, and the vendor has released a patch in v3.8.4.
RemediationAI
Vendor-released patch: v3.8.4. Upgrade SiYuan to v3.8.4 or later immediately. For environments that cannot patch right away, specific compensating controls include: on the Electron desktop application, disable Node integration and enable context isolation in the main BrowserWindow configuration-this prevents the RCE escalation but may break SiYuan features that rely on Node.js in the renderer process; avoid pasting Markdown from untrusted sources into SiYuan, as the attack requires the victim to paste the crafted content-user awareness and training can reduce this risk. These mitigations are partial; the primary fix is applying the vendor patch. Refer to the advisory at https://github.com/siyuan-note/siyuan/security/advisories/GHSA-2cmm-9x9j-rvff and the VulnCheck advisory at https://www.vulncheck.com/advisories/siyuan-before-3.8.4-cross-site-scripting-via-kramdown-ial for details.
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
SiYuan is a personal knowledge management application that uses the Lute Markdown renderer. Lute parses Kramdown inline attribute lists (IALs) from text/plain input, allowing attribute injection when pasting Markdown. The vulnerability (CWE-79: Improper Neutralization of Input During Web Page Generation) resides in the gutter-button generation logic: app/src/protyle/gutter/button.ts fails to HTML-escape the data-subtype attribute before it is assigned via innerHTML in app/src/protyle/gutter/index.ts. An attacker can craft a Markdown snippet with entity-encoded quotes in the data-subtype value that, when the gutter markup is re-parsed by the browser, breaks out of the attribute context and injects additional attributes such as autofocus and onfocus. If the victim pastes the snippet and the affected gutter control receives focus, the injected onfocus handler executes. In the Electron desktop application, where the main BrowserWindow enables Node integration and disables context isolation, this JavaScript execution occurs with renderer Node.js privileges, resulting in remote code execution. The web-based deployment is limited to XSS without Node.js code execution. The CPE cpe:2.3:a:siyuan-note:siyuan:*:*:*:*:*:*:*:* confirms all versions before 3.8.4 are affected.
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:N/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network-delivered content but exploitation needs both a victim paste and the gutter control gaining focus (AC:H, UI:R); Electron Node integration yields full C/I/A RCE within the app's authority (S:U).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
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.
Technical POC Analysis
CWE-79 (improper neutralization during web page generation).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity flaw in the SiYuan note-taking application (all versions before 3.8.4) allows an attacker to achieve remote code execution on users' desktop machines by tricking them into pasting specially crafted Markdown into a note. Because SiYuan's Electron desktop build runs with Node.js integration enabled, a successful attack grants the attacker the same access to the user's workstation as the logged-in employee, putting local files, saved credentials, and connected corporate systems at risk. The vulnerability is unauthenticated but requires deliberate user interaction, so risk is concentrated in knowledge-worker populations that routinely paste content from external sources such as tickets, emails, and chat threads.
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-87733
GHSA-r9x8-34vf-7m8q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB