CVE-2026-100645 Overview
CVE-2026-100645 is a stored cross-site scripting (XSS) vulnerability in SiYuan, an open-source personal knowledge management application. The flaw affects SiYuan versions 3.7.0 through versions before 3.8.4. Field descriptions in gallery and kanban database renderers are not properly escaped in aria-label attributes, enabling attackers to inject arbitrary JavaScript. In the Electron desktop application with nodeIntegration enabled, injected JavaScript can call Node.js child_process APIs to execute arbitrary operating system commands with the privileges of the current user. The vulnerability is tracked as CWE-79: Improper Neutralization of Input During Web Page Generation.
Critical Impact
Successful exploitation permits arbitrary command execution on the victim's host, enabling full compromise of the user account running the SiYuan desktop client.
Affected Products
- SiYuan 3.7.0 through versions earlier than 3.8.4
- SiYuan Electron desktop application with nodeIntegration enabled
- Gallery and kanban database renderer components
Discovery Timeline
- 2026-09-26 - CVE-2026-100645 published to NVD
- 2026-09-26 - Last updated in NVD database
Technical Details for CVE-2026-100645
Vulnerability Analysis
SiYuan renders database views such as gallery and kanban layouts in the browser-based front end of its Electron application. Each field in these views can carry a user-controlled description, which the renderer places into an aria-label attribute for accessibility. The renderer fails to apply HTML attribute escaping to this value. An attacker who can edit a shared workspace, synced notebook, or imported document can plant malicious payloads inside a field description. When another user opens the view, the browser context parses the attacker-controlled markup and executes attacker JavaScript in the application origin.
Because SiYuan ships as an Electron desktop client with nodeIntegration enabled, the renderer process has direct access to Node.js APIs. Injected JavaScript can require('child_process') and invoke exec, spawn, or execFile to run operating system commands. The attack escalates from a web-layer XSS into local arbitrary command execution.
Root Cause
The root cause is missing output encoding of untrusted field description data when writing the aria-label attribute in gallery and kanban renderers. Combined with Electron's nodeIntegration being enabled in the renderer process, the attribute-level XSS crosses the browser-to-OS trust boundary.
Attack Vector
Exploitation requires an attacker to store a crafted field description within a database used by a victim who opens the gallery or kanban view. This can occur through collaborative notebooks, shared exports, cloud synchronization, or imported third-party content. User interaction is required to render the affected view. Technical details are published in the GitHub Security Advisory GHSA-556j-q8c8-qqg3 and the VulnCheck Advisory for SiYuan XSS.
No verified public exploit code is available at this time. The payload pattern involves breaking out of the aria-label attribute context and loading Node.js modules to spawn child processes.
Stop Remote Code Execution Before It Runs
Singularity™ Endpoint detects and blocks exploit attempts at machine speed, including zero-days and novel attack techniques.
Stop Exploit AttemptsDetection Methods for CVE-2026-100645
Indicators of Compromise
- Unexpected child processes spawned by the SiYuan Electron executable, such as cmd.exe, powershell.exe, /bin/sh, or bash.
- Outbound network connections initiated by SiYuan to domains unrelated to its sync service.
- Database field descriptions containing HTML tags, quote characters, or javascript: fragments.
- New or modified files written by the SiYuan process outside of its workspace directory.
Detection Strategies
- Inspect SiYuan .sy workspace files and database definitions for field description values containing ", <, >, or on*= attribute patterns.
- Monitor endpoint telemetry for process trees where siyuan or SiYuan.exe is the parent of shell or scripting interpreters.
- Review Electron application logs for unexpected renderer-initiated module loads.
Monitoring Recommendations
- Alert on command-line executions where the parent process is the SiYuan desktop binary.
- Track SiYuan client versions deployed across the environment and flag any installation below 3.8.4.
- Correlate workspace file modifications with subsequent process execution events on the same host.
How to Mitigate CVE-2026-100645
Immediate Actions Required
- Upgrade all SiYuan Electron desktop installations to version 3.8.4 or later.
- Audit shared and synchronized notebooks for field descriptions introduced by untrusted contributors.
- Restrict import of third-party SiYuan workspaces until the client is patched.
- Remove or quarantine any database entries containing suspicious markup in gallery or kanban field descriptions.
Patch Information
The maintainers address the issue in SiYuan 3.8.4 by escaping field description content before it is written into aria-label attributes. Refer to the GitHub Security Advisory GHSA-556j-q8c8-qqg3 for release notes and upgrade guidance.
Workarounds
- Avoid opening gallery or kanban views that reference untrusted databases until patched.
- Limit SiYuan workspace sharing to trusted collaborators.
- Run the SiYuan client under a least-privileged user account to reduce the blast radius of command execution.
# Verify installed SiYuan version on Linux/macOS
siyuan --version
# Example: block SiYuan from spawning shells via application allowlisting
# (adapt to your EDR or OS policy framework)
# Deny rule: parent_process == "SiYuan" AND child_process IN ("bash","sh","cmd.exe","powershell.exe")
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

