Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain authenticated MCP access to SiYuan
-
DeliveryInvoke database_clean with traversal id
-
ExploitBypass empty-string check into filepath.Join
-
ExecutionCopy target file into history directory
-
ImpactRead exfiltrated copy and delete original
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated MCP client with permission to invoke the database_clean tool (CVSS PR:H), and the SiYuan kernel/MCP interface must be reachable by the attacker - the vector is AV:N so it can be network-reachable, but access to the privileged MCP tool surface is the gating prerequisite. The specific trigger is supplying path-traversal sequences (e.g. '../') in the id parameter of database_clean, which is passed to RemoveUnusedAttributeView without node-ID format validation. Impact is bounded to files readable by the SiYuan process account, so least-privilege deployment limits what can be read or deleted. Limiting factors: only affects versions before v3.7.4; requires MCP to be enabled and exposed; and requires the caller to already hold authenticated/privileged MCP access rather than being anonymously reachable. |
| Impact | The signals are largely consistent and point to a genuine high-severity issue for anyone exposing SiYuan's MCP interface: the CVSS 4.0 base score is 9.3 with VC:H/VI:H and subsequent-system SC:H/SI:H reflecting both arbitrary read and destructive deletion. Crucially the vector carries PR:H, so exploitation requires an already-authenticated/privileged MCP client - this is not an unauthenticated internet drive-by, which meaningfully lowers real-world exposure and argues the 9.3 overstates risk for typical single-user desktop installs. There is no EPSS score, POC, or KEV entry in the provided data, so probability-of-exploitation and active-exploitation signals are simply absent rather than reassuringly low; treat the risk as credible-but-unproven. The most realistic threat model is a shared, multi-tenant, or agent-driven deployment where an MCP client is reachable by a lower-trust party, or where a compromised/prompt-injected AI agent already holds MCP access and can be steered into invoking database_clean. Given the destructive delete primitive, operators running SiYuan as a networked service should patch promptly even though desktop-only users face materially lower urgency. |
| Exploit ScenarioDerived | An attacker who already has authenticated access to the SiYuan MCP endpoint - for example a low-trust user on a shared instance, or an AI agent that has been prompt-injected - invokes the database_clean tool with an id value containing '../' traversal sequences pointing at a sensitive file such as a config, key, or credential store readable by the kernel process. The kernel copies that file into its history directory (yielding arbitrary read) and deletes the original (arbitrary deletion). No POC is published in the available data, and the AC:L/AT:N vector indicates the traversal is straightforward to trigger once MCP access is held. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 17, 2026
Arbitrary file read and deletion in SiYuan kernel before v3.7.4 arises from an unvalidated id parameter in the database_clean MCP tool, letting an authenticated MCP client traverse the filesystem to copy any process-readable file into the history directory and then delete the original. This is the MCP-facing twin of a flaw previously fixed on the HTTP API path (GHSA-7hm9-v7vf-7g4w), meaning a known-bad code pattern survived in a second caller. Reported by VulnCheck with a vendor patch available; no public exploit identified at time of analysis and not listed in CISA KEV.
RemediationAI
Upgrade SiYuan to v3.7.4 or later, which applies the same path-validation hardening to the MCP database_clean caller that GHSA-7hm9-v7vf-7g4w previously applied to the HTTP API handler; a vendor patch is confirmed available per the advisory (https://github.com/siyuan-note/siyuan/security/advisories/GHSA-43jx-gxq4-jpjc). If immediate patching is not possible, reduce exposure by not enabling or exposing the MCP interface to untrusted clients - bind it to localhost only and place it behind authentication you control, restrict which agents or users can invoke MCP tools, and specifically avoid granting MCP access to any AI agent processing untrusted input that could be prompt-injected into calling database_clean. Because the primitive both exfiltrates and deletes files, run the SiYuan kernel under a least-privileged OS account so the set of process-readable files is minimized, and ensure the workspace and adjacent data are backed up so arbitrary deletion is recoverable; note these controls limit blast radius but do not close the traversal flaw itself, so patching remains the only complete fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SiYuan is a self-hosted, local-first personal knowledge-management/note-taking application whose Go kernel exposes both an HTTP API and a Model Context Protocol (MCP) tool surface for AI agent integration. The vulnerable database_clean MCP tool invokes RemoveUnusedAttributeView in kernel/model/attribute_view.go, which constructs a filesystem path with filepath.Join from the caller-supplied id. Because the only guard is an empty-string check - and no validation that id conforms to SiYuan's fixed node-ID format (a 14-digit timestamp plus a 7-character random suffix) - this is a textbook CWE-22 (Improper Limitation of a Pathname to a Restricted Directory). filepath.Join does not neutralize '../' sequences relative to a base, so traversal payloads resolve outside the intended attribute-view directory. The affected CPE is cpe:2.3:a:siyuan-note:siyuan:*:*:*:*:*:*:*:*.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N
MCP access requires an authenticated privileged client (PR:H) but is network-reachable and easy to trigger (AV:N/AC:L); path traversal escapes the app's data scope (S:C) enabling arbitrary read (C:H) and deletion (I:H), with no direct availability impact modeled (A:N).
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
SiYuan kernel before v3.7.4 contains a path traversal vulnerability in the database_clean MCP tool. The tool performs only an empty-string check on the id parameter before passing it to RemoveUnusedAttributeView (kernel/model/attribute_view.go), which builds a filesystem path via filepath.Join without validating that id matches SiYuan's node-ID format. An authenticated MCP client can supply path traversal sequences in id to cause the kernel to copy an arbitrary file readable by the process into SiYuan's history directory (arbitrary file read) and then delete the original file (arbitrary file deletion). The corresponding HTTP API handler was hardened in GHSA-7hm9-v7vf-7g4w, but this MCP caller was not.
Executive ViewAI
SiYuan kernel versions before 3.7.4 contain a critical vulnerability that allows authenticated users to read and delete arbitrary files stored within the application environment, putting sensitive organizational data at risk of both unauthorized access and permanent loss. This affects any organization using SiYuan for document storage and collaboration, particularly those handling confidential information.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
SQL injection in SiYuan's fullTextSearchAssetContent endpoint lets unauthenticated attackers and holders of publish Role
Stored cross-site scripting in SiYuan personal knowledge management before 3.7.0 lets an attacker with write access to a
SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements
Stored cross-site scripting in SiYuan's attribute-view (database) cell renderer, affecting all versions prior to 3.7.0,
SQL injection in SiYuan personal knowledge-management software (all versions before v3.7.3) lets attackers inject arbitr
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
Remote code execution in SiYuan note-taking application (before v3.6.1) allows any malicious Bazaar marketplace package
Origin-validation bypass in SiYuan Note (open-source personal knowledge management) before 3.7.0 lets any installed Chro
EUVD-2026-60081
GHSA-mwfp-66vr-j373
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB