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
2DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements
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
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
SQL injection in SiYuan prior to version 3.6.0 allows any authenticated user, including those with read-only access, to
Cross-site scripting (XSS) in SiYuan personal knowledge management system versions 3.6.0-3.6.1 allows remote attackers t
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 |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-39127
GHSA-5xfx-xj4h-5p7r