Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessPublish malicious marketplace package with quote in name
-
DeliveryVictim opens SiYuan marketplace view
-
ExploitPayload breaks out of data-obj attribute
-
ExecutionInject HTML/script into Electron renderer
-
PersistNode integration enables child_process call
-
ImpactExecute arbitrary OS commands 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 that the attacker can publish or get a package listed in the SiYuan marketplace whose name (or version, author, or description) contains a single-quote character plus injected HTML, AND that a victim opens the marketplace view in the SiYuan desktop (Electron) client so the malicious card is rendered (UI:R, victim interaction required). The escalation from DOM XSS to OS command execution specifically depends on the desktop client's BrowserWindow running with nodeIntegration:true and contextIsolation:false - this is the default for the affected desktop builds, so no victim misconfiguration is needed, but the web/browser-only usage without Node integration would limit impact to in-page XSS. Limiting factors: the attacker needs marketplace-publishing access (PR:L), the victim must actively browse the marketplace, and the OS-command-execution impact is specific to the desktop Electron client. |
| Impact | The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H, base 9.0) reflects a network-reachable, low-complexity flaw that nonetheless requires victim interaction (browsing the marketplace) and some attacker privilege (publishing a package to the marketplace). The scope change (S:C) and full CIA impact are well-justified because XSS in the Electron renderer crosses into OS command execution. EPSS and KEV data were not provided in the input; with no public exploit identified and no CISA KEV listing, this currently reads as a high-severity but not yet actively-exploited issue. The practical gating factor is the marketplace publish-and-lure requirement: an attacker must get a malicious package listed and convince a user to view it, which makes this more of a targeted/social-engineering vector than mass-automatable exploitation. Note that PR:L versus PR:N is debatable depending on how open SiYuan's marketplace submission is - verify marketplace publishing controls with the vendor. |
| Exploit ScenarioDerived | An attacker publishes a marketplace package whose name contains a single quote followed by an HTML/script payload. When a victim opens SiYuan's marketplace and the malicious card is rendered, the payload breaks out of the data-obj attribute and executes in the Electron renderer; because Node integration is enabled, the script calls child_process to run attacker-chosen OS commands on the victim's machine. No public exploit was identified at time of analysis, but the low attack complexity makes weaponization straightforward once a package can be listed. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Stored cross-site scripting leading to OS command execution in SiYuan, an open-source personal knowledge management system, affects all desktop client versions prior to 3.7.0. Untrusted marketplace package metadata (name, version, author, description) is serialized via JSON.stringify() into a single-quoted data-obj HTML attribute without escaping single quotes or angle brackets, so a package name containing a single quote breaks out of the attribute and injects arbitrary HTML; because the Electron BrowserWindow runs with nodeIntegration:true and contextIsolation:false, the DOM XSS escalates to arbitrary command execution on the host. No public exploit identified at time of analysis, but the GitHub Security Advisory (GHSA-x88j-wgpr-h22x) notes this is the same root cause and impact as a prior advisory, reached through a sibling sink the earlier patch missed.
RemediationAI
Vendor-released patch: 3.7.0 - upgrade all SiYuan desktop clients to 3.7.0 or later, which adds proper escaping of the untrusted marketplace fields before they reach the data-obj attribute (see https://github.com/siyuan-note/siyuan/security/advisories/GHSA-x88j-wgpr-h22x). Until upgrading, avoid opening or browsing the package marketplace within the desktop client, since the injection triggers when a malicious card is rendered; this trades away marketplace functionality but removes the trigger. As a deeper compensating control for environments that cannot patch immediately, run the client in a sandboxed/least-privilege OS account so that any resulting command execution is contained, accepting the inconvenience of restricted local privileges. Hardening the Electron configuration (contextIsolation:true / nodeIntegration:false) is the long-term structural mitigation but is not user-configurable in a packaged release and effectively requires the vendor fix.
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 vulnerability lives in SiYuan's marketplace UI, which renders package cards by embedding package metadata into a data-obj HTML attribute. The values are produced with JavaScript's JSON.stringify(), which correctly escapes characters like double-quotes and backslashes for JSON but does NOT escape the single-quote ('), less-than (<), or greater-than (>) characters that are significant in single-quoted HTML attribute contexts. This is a classic CWE-79 (Improper Neutralization of Input During Web Page Generation) where a JSON-encoding routine is incorrectly used as an HTML-attribute-encoding routine. The CPE cpe:2.3:a:siyuan-note:siyuan identifies the affected product. SiYuan's desktop client is built on Electron; with nodeIntegration:true and contextIsolation:false the renderer process has direct access to Node.js APIs (e.g. child_process), so any script injected into the DOM can invoke OS-level commands - the reason a content-injection bug becomes remote code execution rather than browser-confined XSS.
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
AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
Attacker must publish a marketplace package (PR:L) and victim must browse it (UI:R); renderer XSS escaping into OS command execution justifies S:C with full C:H/I:H/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
SiYuan is an open-source personal knowledge management system. Prior to 3.7.0, it does not escape the untrusted fields (name, version, author, description) when they are serialized into the data-obj HTML attribute of each marketplace card. Because the attribute is single-quoted and the value is produced with JSON.stringify() (which does not escape ', <, or >), a package whose name contains a single quote breaks out of the attribute and injects arbitrary HTML. In the desktop client the main BrowserWindow runs with nodeIntegration: true, contextIsolation: false, so the injected markup escalates from DOM XSS to arbitrary OS command execution. This is the same root cause and same impact as the original advisory, reached through a sibling sink the patch did not cover. This vulnerability is fixed in 3.7.0.
Executive ViewAI
SiYuan personal knowledge management application versions before 3.7.0 enable remote code execution on employee desktops through malicious packages installed from the built-in marketplace, completely bypassing security controls. Any user installing packages from the marketplace can be compromised, granting attackers full access to system files, network credentials, and enterprise resources.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Disable marketplace synchronization and package installation in application settings; (2) Run SiYuan exclusively within isolated virtual machine or container with restricted file system and network access; (3) Implement egress firewall rules limiting SiYuan connections to only approved cloud sync endpoints; (4) If configuration files are accessible, disable Electron nodeIntegration setting; (5) Deploy file integrity monitoring on SiYuan installation directory to detect unauthorized modifications.
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.
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
SQL injection in SiYuan's fullTextSearchAssetContent endpoint lets unauthenticated attackers and holders of publish Role
Stored cross-site scripting in SiYuan personal knowledge management before 3.7.0 lets an attacker with write access to a
SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements
Stored cross-site scripting in SiYuan's attribute-view (database) cell renderer, affecting all versions prior to 3.7.0,
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
EUVD-2026-39102
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB