CVE-2026-93923: SiYuan: stored XSS in heading style enables Electron RCE
HIGHPoC AVAILABLECISA: ATTENDSiYuan through 3.8.4 fails to escape heading style attributes when rendering the outline and bookmark docks, so a crafted notebook or a call to an administrative endpoint can plant a stored XSS payload. Because the Electron renderer runs with full system access, a single user opening the poisoned content can turn this into code execution on the endpoint, which is why the 8.8 CVSS score is credible. Exploitation likelihood is modest, with EPSS at 0.6% (top 53%), no CISA KEV listing and no Nuclei template. However, public PoC code exists and CISA SSVC rates it ATTEND, so treat it as a priority patch for teams that use SiYuan to hold knowledge bases, research notes or AI-assisted documentation. Upgrade beyond 3.8.4 as soon as a fixed release is available. Until then, avoid importing notebooks from untrusted sources and restrict network exposure of the SiYuan kernel.
What is the risk?
High. The attack is network-reachable with low complexity and no privileges, and only requires user interaction (opening or rendering the poisoned notebook). Scope is unchanged, but confidentiality, integrity and availability impact are all high because script runs inside an Electron renderer with system-level access. A public PoC exists, which lowers the barrier. Real-world exploitation signals are weak: EPSS is 0.00599, there is no KEV listing and no scanner template. Exposure depends on whether the kernel is network-reachable or users import external notebooks. Package risk data is unavailable, so the blast radius across dependents is unknown.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| github.com/siyuan-note/siyuan/kernel | — | — | No patch |
Do you use github.com/siyuan-note/siyuan/kernel? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step1) Upgrade SiYuan to a release later than 3.8.4 once the vendor publishes the fix referenced in GHSA-928g-4hfq-qwvx; check the advisory for the exact patched version. 2) Do not open or import notebooks from untrusted or unknown sources until patched. 3) Do not expose the SiYuan kernel port to untrusted networks; bind it to localhost or place it behind authenticated access, and rotate any exposed access auth codes. 4) Rotate LLM provider API keys and other secrets stored in SiYuan if compromise is suspected. 5) Detection: review notebooks for heading blocks with unusual style attributes containing script, event handlers or HTML metacharacters, and watch for unexpected child processes spawned by the SiYuan Electron process and unexpected calls to administrative endpoints.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-93923?
SiYuan through 3.8.4 fails to escape heading style attributes when rendering the outline and bookmark docks, so a crafted notebook or a call to an administrative endpoint can plant a stored XSS payload. Because the Electron renderer runs with full system access, a single user opening the poisoned content can turn this into code execution on the endpoint, which is why the 8.8 CVSS score is credible. Exploitation likelihood is modest, with EPSS at 0.6% (top 53%), no CISA KEV listing and no Nuclei template. However, public PoC code exists and CISA SSVC rates it ATTEND, so treat it as a priority patch for teams that use SiYuan to hold knowledge bases, research notes or AI-assisted documentation. Upgrade beyond 3.8.4 as soon as a fixed release is available. Until then, avoid importing notebooks from untrusted sources and restrict network exposure of the SiYuan kernel.
Is CVE-2026-93923 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-93923, increasing the risk of exploitation.
How to fix CVE-2026-93923?
1) Upgrade SiYuan to a release later than 3.8.4 once the vendor publishes the fix referenced in GHSA-928g-4hfq-qwvx; check the advisory for the exact patched version. 2) Do not open or import notebooks from untrusted or unknown sources until patched. 3) Do not expose the SiYuan kernel port to untrusted networks; bind it to localhost or place it behind authenticated access, and rotate any exposed access auth codes. 4) Rotate LLM provider API keys and other secrets stored in SiYuan if compromise is suspected. 5) Detection: review notebooks for heading blocks with unusual style attributes containing script, event handlers or HTML metacharacters, and watch for unexpected child processes spawned by the SiYuan Electron process and unexpected calls to administrative endpoints.
What systems are affected by CVE-2026-93923?
This vulnerability affects the following AI/ML architecture patterns: Desktop knowledge management with AI features, Electron-based AI note-taking applications, Developer workstations holding LLM API credentials.
What is the CVSS score for CVE-2026-93923?
CVE-2026-93923 has a CVSS v3.1 base score of 8.8 (HIGH). The EPSS exploitation probability is 0.60%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0011.003Malicious LinkAML.T0037Data from Local SystemAML.T0049Exploit Public-Facing ApplicationCompliance Controls Affected
What are the technical details?
Original Advisory
SiYuan through 3.8.4 fails to escape heading style attributes when rendering outline and bookmark dock HTML, allowing stored cross-site scripting. Attackers can supply crafted notebooks or call administrative endpoints to inject malicious style values that execute in the Electron renderer with full system access.
Exploitation Scenario
An attacker shares a crafted SiYuan notebook, for example a research or threat-intel template for AI projects, containing a heading whose style attribute holds a malicious payload. When the victim imports it and the outline or bookmark dock renders, the payload executes in the Electron renderer. The script uses Node and system access to read local files, exfiltrate stored LLM API keys and notes, and launch further commands on the workstation. Alternatively, an attacker who can reach an exposed kernel calls administrative endpoints to write the malicious style value into existing documents, which executes when a user next views them.
Weaknesses (CWE)
CWE-79Improper Neutralization of Input During Web Page GenerationPrimaryCWE-79Improper Neutralization of Input During Web Page GenerationCWE-79 — Improper Neutralization of Input During Web Page Generation: The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
- [Architecture and Design] Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid [REF-1482]. Examples of libraries and frameworks that make it easier to generate properly encoded output include Microsoft's Anti-XSS library, the OWASP ESAPI Encoding module, and Apache Wicket.
- [Implementation, Architecture and Design] Understand the context in which your data will be used and the encoding that will be expected. This is especially important when transmitting data between different components, or when generating outputs that can contain multiple encodings at the same time, such as web pages or multi-part mail messages. Study all expected communication protocols and data representations to determine the required encoding strategies. For any data that will be output to another web page, especially any data that was received from external inputs, use the appropriate encoding on all non-alphanumeric characters. Parts of the same output document may require different encodings, which will vary depending on whether the output is in the: etc. Note that HTML Entity Encoding is only appropriate for the HTML body. Consult the XSS Prevention Cheat Sheet [REF-724] for more details on the types of encoding and escaping that are needed. HTML body Element attributes (such as src="XYZ") URIs JavaScript sections Casca
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:HReferences
- github.com/siyuan-note/siyuanproduct
- github.com/siyuan-note/siyuan/blob/v3.8.4/app/src/util/Tree.tstechnical-description
- github.com/siyuan-note/siyuan/blob/v3.8.4/app/src/util/Tree.tstechnical-description
- github.com/siyuan-note/siyuan/blob/v3.8.4/kernel/model/render.gotechnical-description
- github.com/siyuan-note/siyuan/security/advisories/GHSA-928g-4hfq-qwvxvendor-advisory
- vulncheck.com/advisories/siyuan-through-3.8.4-stored-xss-via-heading-style-attributethird-party-advisory
Timeline
Related Vulnerabilities
CVE-2025-5952810.0Flowise: Unauthenticated RCE via MCP config injection
Same attack type: Code ExecutionCVE-2024-291210.0BentoML: RCE via insecure deserialization (CVSS 10)
Same attack type: Code ExecutionCVE-2023-376510.0MLflow: path traversal allows arbitrary file read
Same attack type: Data LeakageCVE-2025-512010.0smolagents: sandbox escape enables unauthenticated RCE
Same attack type: Data LeakageCVE-2026-2185810.0n8n: Input Validation flaw enables exploitation
Same attack type: Code Execution