Skip to main content

SiYuan EUVDEUVD-2026-62441

| CVE-2026-75916 CRITICAL
Cross-site Scripting (XSS) (CWE-79)
2026-08-19 VulnCheck GHSA-962c-hgx6-ffmx
9.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Craft block with payload in alias/memo
  2. Delivery
    Deliver via shared or synced notebook
  3. Exploit
    Victim types '((' and searches
  4. Execution
    Unescaped metadata renders in hint popup
  5. Persist
    onerror fires in Electron renderer
  6. Impact
    require('child_process') executes OS commands

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 attacker to be able to set a target block's name, alias, or memo metadata fields - i.e. some path to deliver attacker-controlled block content into the victim's SiYuan workspace, such as a shared, imported, or synced notebook; and (2) the victim to type the '((' block-reference trigger followed by a search term that causes the crafted block to appear in the autocomplete hint popup, at which point the payload self-fires (UI:P passive interaction). It applies to default configurations of SiYuan through 3.7.3 because the vulnerable renderer settings (nodeIntegration enabled, contextIsolation disabled, no CSP) are the shipped defaults, so no special hardening bypass is needed. Limiting factors: the attack is local to the app (AV:L) and needs the malicious metadata to already be present, so purely single-user local-only workspaces with no external note ingestion are largely out of reach; the victim must perform the '((' autocomplete action for the payload to trigger.

Impact

The signals mostly agree that this is a high-impact but interaction- and delivery-gated issue. The CVSS 4.0 vector (AV:L/AC:L/AT:N/PR:N/UI:P) scores 9.3 driven by full compromise of both the vulnerable app (VC/VI/VA:H) and the subsequent host system (SC/SI/SA:H) once the payload reaches child_process, but the AV:L and UI:P metrics correctly reflect that the payload must first be delivered into the victim's workspace and then passively surfaced when the user types '(('. There is no EPSS value, no CISA KEV listing, and no public exploit identified at time of analysis, so there is no evidence of active or widespread exploitation; the realistic risk is targeted - a malicious shared/imported note or a compromised sync/collaboration source rather than mass internet exploitation. That said, the outcome (arbitrary OS command execution with no user awareness beyond normal typing) is severe enough that even a mid-sized municipal IT team in boleslawiec should treat a shared-workspace or imported-document deployment as urgent, prioritizing it above a typical reflected XSS. The main uncertainty is the delivery path: the description confirms an attacker must be able to set block metadata, so environments where notes are only authored locally by a single trusted user are materially lower risk than shared or synced deployments.

Exploit ScenarioDerived

An attacker crafts a SiYuan block whose alias or memo field contains a self-firing payload such as <img src=x onerror="require('child_process').exec('...')"> and gets it into the victim's workspace via a shared, imported, or synced notebook. When the victim later types '((' and a search term that surfaces the crafted block in the hint popup, the unescaped metadata renders and the onerror handler fires automatically, executing OS commands on the victim's machine without any click. No public proof-of-concept is identified at time of analysis, but the advisories describe the full chain.

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 19, 2026

Stored cross-site scripting escalating to arbitrary OS command execution affects the SiYuan personal knowledge-management application through version 3.7.3. Because the '((' block-reference autocomplete popup renders a candidate block's name, alias, and memo fields into HTML without escaping, an attacker who controls those metadata fields can plant a self-firing payload that runs the moment a victim types '((' and surfaces the crafted block; SiYuan's Electron shell runs with nodeIntegration enabled, contextIsolation disabled, and no CSP, so the injected script reaches require('child_process') and executes host commands. There is no public exploit identified at time of analysis and it is not listed in CISA KEV, but the XSS-to-RCE chain is fully described by the VulnCheck advisory and vendor GHSA.

RemediationAI

Patch available per vendor advisory GHSA-5prr-vgxq-69g9; upgrade to the fixed SiYuan release published after 3.7.3 as indicated in that advisory (the exact patched version is not stated in the available data, so confirm it against the GitHub advisory and release notes at https://github.com/siyuan-note/siyuan/security/advisories/GHSA-5prr-vgxq-69g9 and the VulnCheck writeup). Until patched, reduce exposure by not importing, opening, or syncing notebooks/blocks from untrusted sources and by treating any shared or collaborative workspace as an injection vector, since the payload rides in block name/alias/memo metadata - the trade-off is loss of collaboration/import convenience. Where feasible, review existing block metadata for HTML-like content (e.g. strings containing '<img', 'onerror', or other tag/handler patterns) before typing '((' searches, and avoid triggering block-reference autocomplete against untrusted content; note these are only partial controls because the flaw is in how the app renders metadata, not in the data itself, and the underlying Electron hardening gaps (nodeIntegration/contextIsolation/CSP) remain until the vendor fix is applied.

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 a local-first, block-based note-taking/PKM application built on an Electron desktop shell with a TypeScript frontend. The defect is in genHintItemHTML() within app/src/protyle/hint/extend.ts, where the block-reference hint UI (triggered by the '((' syntax) builds each suggestion row by string-concatenating attacker-influenceable block metadata (name, alias, memo) directly into innerHTML with no HTML-entity encoding. This is a classic CWE-79 improper neutralization of input during web page generation, but its severity is amplified by the Electron threat model: with nodeIntegration on and contextIsolation off and no Content-Security-Policy, the renderer's JavaScript context has full Node.js API access, so DOM-injected script is not sandboxed to the page and can spawn child processes. The affected component per CPE is cpe:2.3:a:siyuan-note:siyuan:*:*:*:*:*:*:*:* across all versions up to and including 3.7.3.

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

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

Payload must be delivered into the workspace and triggered by the victim typing '((' (AV:L, UI:R); attacker needs no victim-side privileges (PR:N); XSS escapes the renderer to the host OS via Node integration, so S:C with full C/I/A:H.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
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 through 3.7.3 contains a cross-site scripting vulnerability in the '((' block-reference autocomplete hint popup. In genHintItemHTML() (app/src/protyle/hint/extend.ts), a candidate block's name, alias, and memo fields are concatenated into the popup's HTML without escaping. An attacker who can set these metadata fields on a block can inject a self-firing payload (e.g. <img src=x onerror=...>) that executes automatically when a victim types '((' followed by a search term that surfaces the crafted block. Because SiYuan's Electron windows run with nodeIntegration enabled, contextIsolation disabled, and no CSP, the injected script gains require('child_process') access, allowing the XSS to escalate to arbitrary OS command execution.

Executive ViewAI

Why It Matters

SiYuan personal knowledge-management application through version 3.7.3 contains a critical vulnerability that allows attackers who control block metadata to execute arbitrary operating system commands on victim systems. This escalation from stored cross-site scripting to remote code execution threatens complete system compromise, data theft, and business continuity for any organization using SiYuan.

Business Impact: Severe
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict modification of block names, aliases, and memo fields to trusted administrators; monitor SiYuan processes for suspicious child process creation or command execution activity; consider network isolation or containerized/virtualized deployment of SiYuan instances; disable unnecessary Electron features and integrations in application settings.

Threat Intelligence Overview

EPSS Score
0.2%
Top 94% exploitable
Prevalence
Low
niche open-source personal note-taking app, limited enterprise footprint
Data Quality
6 sources
Confidence: High

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
Scheduled
Exploitation
Poc
System Exposure· derived
Small
Automatable
No
Human Impact
Very High
Technical Impact
Total

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
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.

OS command injection occurs when an application passes unsanitized user input directly into system shell commands.

Affected Products (CPE)CVE.org

cpe:2.3:a:siyuan-note:siyuan:*:*:*:*:*:*:*:*

More in Siyuan

View all
CVE-2026-69084 CRITICAL POC
9.9 Aug 03

SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements

CVE-2026-69085 CRITICAL POC
9.9 Aug 03

SQL injection in SiYuan personal knowledge-management software (all versions before v3.7.3) lets attackers inject arbitr

CVE-2024-53507 CRITICAL POC
9.8 Nov 29

A SQL injection vulnerability was discovered in Siyuan 3.1.11 in /getHistoryItems. Rated critical severity (CVSS 9.8), t

CVE-2024-53506 CRITICAL POC
9.8 Nov 29

A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the ids array parameter in /batchGetBlockAttrs. R

CVE-2024-53505 CRITICAL POC
9.8 Nov 29

A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the id parameter at /getAssetContent. Rated criti

CVE-2024-53504 CRITICAL POC
9.8 Nov 29

A SQL injection vulnerability has been identified in Siyuan 3.1.11 via the notebook parameter in /searchHistory. Rated c

CVE-2026-23852 CRITICAL POC
9.6 Jan 19

SiYuan personal knowledge management system prior to 3.5.4 has a stored XSS vulnerability (CVSS 9.6) that allows code ex

CVE-2026-56397 CRITICAL POC
9.4 Jun 21

Remote code execution in SiYuan note-taking application (before v3.6.1) allows any malicious Bazaar marketplace package

CVE-2026-54069 CRITICAL POC
9.2 Jun 24

Origin-validation bypass in SiYuan Note (open-source personal knowledge management) before 3.7.0 lets any installed Chro

CVE-2026-29183 CRITICAL POC
9.3 Mar 06

Reflected XSS in SiYuan knowledge management before 3.5.9.

CVE-2026-25539 CRITICAL POC
9.1 Feb 04

SiYuan knowledge management system prior to 3.5.5 has a path traversal in /api/file/copyFile allowing arbitrary file ope

CVE-2024-2692 CRITICAL POC
9.0 Apr 04

SiYuan version 3.0.3 allows executing arbitrary commands on the server. Rated critical severity (CVSS 9.0), this vulnera

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