Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconGain write access to synced workspace
-
DeliveryPlant XSS in text/url/phone/mAsset DB cell
-
ExploitPayload syncs to victim devices
-
InstallVictim opens block-attribute panel
-
C2onerror script runs in Electron renderer
-
Executerequire('child_process') executes host commands
-
ImpactFull host compromise
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 the attacker to have write access to a workspace the victim synchronizes (a shared/collaborative vault, a multi-user deployment, or a compromised sync account) and the ability to set a value in a database (attribute-view) cell of type text, url, phone, or mAsset - the exact four genAVValueHTML branches that interpolate raw content. The payload only executes when the victim opens the block-attribute panel rendering the malicious row, so a victim action is required despite the official UI:N rating. Full host RCE (versus browser-context script execution) further requires the victim to run the Electron desktop client, which sets nodeIntegration:true; web/browser usage limits impact to renderer XSS. Limiting factors: PR:L (not anonymous), only versions below 3.7.0 affected, dependence on sync reaching the victim, and the need for the victim to open the specific attribute panel. |
| Impact | Multiple signals point to genuinely high risk, with one caveat about preconditions. The supplied CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H, base 9.9) reflects a scope-changing flaw where renderer XSS breaks out to host RCE - credible given nodeIntegration:true. PR:L is the key gate: the attacker needs write access to a synced workspace (a shared vault, a compromised sync account, or a multi-user setup), not anonymous internet access, so this is not a mass-scannable exploit. The official UI:N is arguably optimistic - the payload only detonates when a victim opens the block-attribute panel containing the planted row, which is a victim action; treating that as effectively requiring user interaction modestly lowers real-world ease versus the headline number. No EPSS score, no SSVC data, no CISA KEV listing, and no public proof-of-concept were provided, so the high CVSS is not corroborated by exploitation telemetry. Net: a real priority for anyone running SiYuan in a shared/synced configuration because impact is full host compromise and the payload is persistent and self-propagating across devices, but the write-access prerequisite and the need for a victim to open the affected panel make it targeted rather than wormable across unrelated installs. |
| Exploit ScenarioDerived | An attacker who can write to a workspace the victim syncs (a shared vault or a compromised sync credential) edits a database row, setting a text/url/phone/asset cell to a value like "><img src=x onerror="require('child_process').exec('...')">. The payload syncs silently to the victim's devices, and the next time the victim opens the block-attribute panel containing that row, the script executes in the Electron renderer and runs arbitrary OS commands. No public proof-of-concept is referenced, but the breakout technique is straightforward given nodeIntegration:true. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Stored cross-site scripting in SiYuan's attribute-view (database) cell renderer, affecting all versions prior to 3.7.0, lets a low-privileged attacker with write access to a synced workspace plant a persistent payload that runs arbitrary JavaScript when a victim opens the block-attribute panel. The genAVValueHTML function interpolates cell content raw in its text, url, phone, and mAsset branches and the Go kernel never escapes the value on input, so the malicious row survives sync byte-for-byte and fires on every device that renders it; on the Electron desktop client (nodeIntegration:true) the XSS escalates to host remote code execution via require('child_process'). CVSS is rated 9.9; there is no public exploit identified at time of analysis and the issue is not listed in CISA KEV.
RemediationAI
Upgrade to SiYuan 3.7.0 or later, the vendor-released patch that adds escaping to the genAVValueHTML cell renderer; apply it on every device that participates in sync, since the stored payload fires per-device. See the advisory at https://github.com/siyuan-note/siyuan/security/advisories/GHSA-5xfx-xj4h-5p7r. Until all devices are updated, restrict write access to shared or synced workspaces to trusted users only, and avoid opening block-attribute (database) panels in workspaces that received content from untrusted contributors - the trade-off is loss of collaborative-editing convenience. Because AV files persist the malicious value verbatim, an already-planted payload survives an upgrade in stored data, so after upgrading inspect or rebuild attribute-view rows authored by untrusted parties rather than assuming the update alone neutralizes existing data. Where feasible, running the client in the browser/web context instead of the Electron desktop app removes the nodeIntegration:true RCE escalation path (renderer XSS still applies), at the cost of desktop integration.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SiYuan is an open-source, self-hosted personal knowledge management system (vendor siyuan-note, CPE cpe:2.3:a:siyuan-note:siyuan) built on an Electron desktop shell plus a Go kernel. The flaw is in the database/attribute-view feature: the front-end renderer genAVValueHTML builds HTML per cell, and four value branches (text, url, phone, mAsset) concatenate stored cell content directly into markup without HTML/attribute encoding. This is a textbook CWE-79 (Improper Neutralization of Input During Web Page Generation), made worse because it is stored rather than reflected: the kernel persists the value verbatim and lacks an equivalent of the html.EscapeAttrVal sanitization used for block IAL attributes at kernel/model/blockial.go:261. Attribute-view (AV) files live inside the workspace directory and ride SiYuan's normal sync, so the unsanitized data propagates to all of a user's devices. On Electron the renderer runs with nodeIntegration:true, so injected JavaScript can call require('child_process'), collapsing a browser-context XSS into native OS command execution.
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:N/S:C/C:H/I:H/A:H
PR:L because the attacker needs write access to a synced workspace; UI:R because the victim must open the attribute panel; S:C and C/I/A:H because renderer XSS breaks out to host RCE under nodeIntegration:true.
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, the attribute-view (database) cell renderer genAVValueHTML interpolates cell content raw in four of its branches: text, url, phone, and mAsset. A cell value like </textarea><img src=x onerror="..."> or "><img src=x onerror="..."> breaks out of its surrounding tag and runs arbitrary JavaScript in the renderer when the victim opens the block-attribute panel. On Electron desktop the renderer runs with nodeIntegration:true, so the XSS chains to host RCE via require('child_process'). AV files live under the workspace and ride normal sync, so an attacker with write access to any synced workspace plants the payload once and it fires on every device that opens a panel containing that row.he kernel doesn't escape on the way in either, so the malicious cell persists byte-for-byte. There's no equivalent of the html.EscapeAttrVal call that protects block IAL attributes at kernel/model/blockial.go:261. This vulnerability is fixed in 3.7.0.
Executive ViewAI
SiYuan prior to version 3.7.0 contains a stored cross-site scripting vulnerability in attribute-view cell rendering that allows low-privileged users with workspace editing permissions to inject persistent malicious code affecting all users who sync the workspace. On Electron desktop clients, this XSS escalates to remote code execution when victims open a block attribute panel. Organizations must immediately audit workspace access controls and restrict editing permissions, as the vulnerability enables system compromise across all synced devices.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict SiYuan workspace write permissions to a minimal set of trusted administrators; (2) Disable workspace synchronization across client devices wherever operationally feasible; (3) Monitor workspace change logs and audit trails for suspicious modifications; (4) Educate users to avoid opening attribute panels for unfamiliar or unexpected content; (5) On Electron deployments, implement application-level controls or network segmentation to minimize scope of potential code execution; (6) Consider temporary suspension of non-essential SiYuan instances until patch availability is confirmed.
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.
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
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.
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allVendor StatusVendor
SUSE
Severity: Critical| Product | Status |
|---|---|
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-39127
GHSA-5xfx-xj4h-5p7r
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB