Skip to main content

SiYuan CVE-2026-73041

CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-08-15 disclosure@vulncheck.com
9.4
CVSS 4.0 · Vendor: vulncheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain annotation-write access to SiYuan
  2. Delivery
    Inject script into PDF annotation via setFileAnnotation
  3. Exploit
    Payload stored unescaped on disk
  4. Execution
    Victim opens annotated PDF in Electron viewer
  5. Persist
    Script executes with Node.js privileges
  6. Impact
    Arbitrary code execution 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 (1) the ability to call the setFileAnnotation endpoint and write annotation fields to a PDF - an access level reflected by PR:L, i.e. a user/account with annotation-write privileges on the SiYuan workspace, not an anonymous remote attacker; and (2) a victim who subsequently opens the maliciously annotated PDF inside SiYuan's Electron PDF renderer (the UI:P passive-interaction requirement). The technical precondition is that SiYuan's renderer retains Node.js access, which is the default for this Electron application and is what turns the stored XSS into host code execution. Limiting factors: the attacker must already hold write access to annotations, the malicious PDF must be delivered to and opened by a victim, and single-user local installs with no shared/untrusted write access substantially reduce practical exposure.

Impact

The vendor-supplied CVSS 4.0 base score is 9.4 (Critical) with vector AV:N/AC:L/AT:N/PR:L/UI:P and High impact to both the vulnerable system and subsequent systems (VC/VI/VA and SC/SI/SA all High), consistent with sandbox-escaping RCE. The realistic risk is tempered by two limiting signals in the vector itself: PR:L means the attacker must already be able to write annotations (an authenticated or otherwise privileged actor in the SiYuan workspace), and UI:P means a victim must open the malicious PDF - this is not a spray-and-pray unauthenticated internet exploit. No EPSS score, KEV entry, or POC was provided, so exploitation probability cannot be quantified from the input; the absence of a POC and KEV listing suggests no confirmed active exploitation yet. Net: a genuinely high-severity, full-compromise bug for anyone running an affected multi-user or shared SiYuan instance, but exploitation requires a foothold plus victim interaction rather than being remotely automatable - treat as high priority for exposed/shared deployments, lower urgency for single-user local installs.

Exploit ScenarioDerived

An attacker with annotation-write access to a shared SiYuan instance calls setFileAnnotation to store a PDF annotation containing a script payload; the payload is written to disk unescaped. When a colleague later opens that annotated PDF in SiYuan's Electron-based viewer, the script executes with Node.js privileges and runs attacker-chosen commands on the victim's machine. No public POC is currently identified, but the low attack complexity (AC:L) makes weaponization straightforward once write access is obtained.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 15, 2026

Stored cross-site scripting leading to remote code execution in SiYuan (a self-hosted personal knowledge-management notebook) before v3.7.4 lets an attacker with write access poison PDF annotation fields via the setFileAnnotation endpoint; because SiYuan is an Electron application, the injected markup runs as JavaScript in the PDF renderer with full Node.js privileges when a victim opens the annotated PDF, escalating a web injection into host-level code execution. No public exploit has been identified at time of analysis and it is not listed in CISA KEV, but the CWE-79 root cause combined with Node.js integration makes this a full-compromise primitive rather than a benign script injection.

RemediationAI

Upgrade to the fixed release - Vendor-released patch: SiYuan v3.7.4 - which is the primary and recommended fix, per the GitHub Security Advisory at https://github.com/siyuan-note/siyuan/security/advisories/GHSA-fqpw-c3pj-w8g9 and the VulnCheck advisory at https://www.vulncheck.com/advisories/siyuan-before-remote-code-execution-via-pdf-annotations. Until patched, restrict who can write annotations by keeping the SiYuan workspace single-user or limiting network exposure of the service to trusted hosts only (avoid binding it to public interfaces or reverse-proxying it to untrusted users), which reduces the PR:L write-access prerequisite; and avoid opening PDFs annotated by untrusted parties, which defeats the required UI:P interaction. Where feasible, isolate the SiYuan process (dedicated low-privilege account or container) so that Node.js code execution is contained - the trade-off is added deployment complexity and no protection against data-level tampering. These are compensating controls, not substitutes for the v3.7.4 upgrade.

Affected ProductsAI

SiYuan notebook application, all versions before v3.7.4, is affected; the flaw is fixed in v3.7.4. No CPE string was provided in the intelligence sources. Vendor and coordination details are available in the GitHub Security Advisory GHSA-fqpw-c3pj-w8g9 (https://github.com/siyuan-note/siyuan/security/advisories/GHSA-fqpw-c3pj-w8g9) and the VulnCheck advisory (https://www.vulncheck.com/advisories/siyuan-before-remote-code-execution-via-pdf-annotations).

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

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 note-taking / PKM application built on Electron, meaning its renderer processes can reach Node.js APIs (file system, child processes) unless strictly sandboxed. The setFileAnnotation endpoint persists user-supplied annotation data to disk without validation or output encoding, the classic CWE-79 (Improper Neutralization of Input During Web Page Generation) failure. When the stored annotation is later rendered inside the PDF viewer component, the unescaped markup is parsed as executable script; in a standard web page this would be XSS, but in an Electron renderer with Node integration it becomes arbitrary code execution on the host. The 'XSS' and 'Node.js' tags supplied by the reporter (VulnCheck) confirm this stored-XSS-to-RCE bridge as the operative mechanism.

Know when Node.js 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

Vendor (vulncheck) PRIMARY 9.4 CRITICAL
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
vuln.today AI 9.0 CRITICAL

Attacker needs annotation-write access (PR:L) and a victim must open the PDF (UI:R); XSS escaping the renderer into Node.js RCE is a scope change (S:C) with full C/I/A impact.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H

Primary rating from Vendor (vulncheck).

CVSS VectorVendor: vulncheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

DescriptionCVE.org

SiYuan versions before v3.7.4 fail to validate or escape annotation fields written to disk by the setFileAnnotation endpoint. Attackers can inject malicious markup into annotation fields that execute as script in the PDF renderer with full Node.js access when a user opens an annotated PDF.

Executive ViewAI

Why It Matters

SiYuan personal notebook deployments before v3.7.4 are vulnerable to full host compromise through stored XSS in PDF annotations: an attacker with write access can inject code that executes with Node.js privileges when a victim opens the poisoned PDF, exposing sensitive data and enabling persistent system access. Organizations using self-hosted or shared SiYuan instances face data breach and infrastructure compromise risks.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Restrict write access to SiYuan instances to authorized users only; disable PDF annotation features if application configuration supports it; segregate affected systems from sensitive networks and confidential data; establish monitoring for vendor security advisories.

Threat Intelligence Overview

EPSS Score
0.2%
Top 85% exploitable
Prevalence
Low
niche open-source self-hosted note-taking app, small enterprise footprint
Social Media
3
Sightings
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
Poc
System Exposure· derived
Open
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +47
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2025-68613 HIGH POC
8.8 Dec 19

Remote code execution in n8n's workflow expression evaluation system allows an authenticated user with workflow creation

CVE-2024-41713 CRITICAL POC
9.1 Oct 21

A vulnerability in the NuPoint Unified Messaging (NPM) component of Mitel MiCollab through 9.8 SP1 FP2 (9.8.1.201) could

CVE-2024-55591 CRITICAL POC
9.8 Jan 14

FortiOS and FortiProxy contain an authentication bypass via the Node.js websocket module allowing unauthenticated remote

CVE-2023-44487 HIGH POC
7.5 Oct 10

Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour

CVE-2014-7205 CRITICAL POC
10.0 Oct 08

Eval injection vulnerability in the internals.batch function in lib/batch.js in the bassmaster plugin before 1.5.2 for t

CVE-2025-59528 CRITICAL POC
10.0 Sep 22

Flowise version 3.0.5 contains a remote code execution vulnerability in the CustomMCP node. The mcpServerConfig paramete

CVE-2017-14849 HIGH POC
7.5 Sep 28

Node.js 8.5.0 before 8.6.0 allows remote attackers to access unintended files, because a change to ".." handling was inc

CVE-2017-5941 CRITICAL POC
9.8 Feb 09

An issue was discovered in the node-serialize package 0.0.4 for Node.js. Rated critical severity (CVSS 9.8), this vulner

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2014-3744 HIGH POC
7.5 Oct 23

Directory traversal vulnerability in the st module before 0.2.5 for Node.js allows remote attackers to read arbitrary fi

CVE-2014-9566 HIGH POC
7.5 Mar 10

Multiple SQL injection vulnerabilities in the Manage Accounts page in the AccountManagement.asmx service in the Solarwin

CVE-2013-4660 MEDIUM POC
6.8 Jun 28

The JS-YAML module before 2.0.5 for Node.js parses input without properly considering the unsafe !!js/function tag, whic

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy