Description
SiYuan is a self-hosted personal knowledge management system. In versions 3.8.0 through 3.8.3, the MCP file tool's sensitive-path guard (util.IsForbiddenAbsPath(), invoked from resolvePath()) is applied only to the allowed root of recursive operations and not to each resolved descendant path — an incomplete fix for GHSA-c8r8-95hg-mp34. An authenticated administrator using the in-app Agent or the external MCP server can therefore bypass the protected-workspace-file denylist: file.grep can return matching lines from non-hidden protected descendants (for example conf/conf.json, TLS keys, data/snippets/conf.json, data/templates/, data/.siyuan/publishAccess.json, notebook .siyuan internals, or the kernel log), file.copy can copy protected descendants to an ordinary path where file.read can then retrieve them, and unzip can overwrite protected descendants using ordinary, lexically contained ZIP member names. Because file.grep is globally classified as a safe action, it receives no per-call confirmation, and the confirmation cards for file.copy and unzip show only the allowed root arguments. This issue is fixed in version 3.8.4. Suggested title: SiYuan 3.8.0 through 3.8.3 Sensitive-Path Guard Bypass in Recursive MCP File Operations.
Published: 2026-09-26
Score: 8.5 High
EPSS: n/a
KEV: No
Impact: Unauthorized access to sensitive files, leading to confidentiality and integrity compromise.
Action: Immediate Patch
AI Analysis

Impact

The vulnerability lies in SiYuan's MCP file tool, where the internal path validation guard only checks the root during recursive operations. This deficiency allows an authenticated administrator to bypass the protected‑workspace denylist. Through the file.grep, file.copy, and unzip actions, an attacker can read secret configuration files, TLS keys, and other protected descendants, or overwrite them with malicious content. The result is the unintended disclosure of sensitive data and the potential for further exploitation when privileged secrets are exposed.

Affected Systems

SiYuan, versions 3.8.0 through 3.8.3, are affected. The issue is fixed in version 3.8.4 and later releases.

Risk and Exploitability

CVSS score of 8.5 indicates high severity. EPSS score is unavailable, and the vulnerability is not listed in CISA's KEV catalog. Exploitation requires authenticated administrator access to the MCP API or the in‑app Agent. An attacker with these privileges can read or modify critical files. Given the lack of widespread exploitation data, the risk is moderate to high for environments that expose the MCP interface to privileged users. Immediate action to mitigate the risk is recommended.

Generated by OpenCVE AI on September 26, 2026 at 15:15 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade SiYuan to version 3.8.4 or later, which includes the fix for the path traversal bug.
  • If an upgrade is not currently possible, restrict or disable the MCP file operations (file.grep, file.copy, unzip) for all administrators or remove administrative privileges from users who can invoke the MCP API.
  • Enforce strict filesystem permissions to protect the workspace directories from unauthorized access, and monitor for anomalous file read/write activity.

Generated by OpenCVE AI on September 26, 2026 at 15:15 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 26 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Description SiYuan is a self-hosted personal knowledge management system. In versions 3.8.0 through 3.8.3, the MCP file tool's sensitive-path guard (util.IsForbiddenAbsPath(), invoked from resolvePath()) is applied only to the allowed root of recursive operations and not to each resolved descendant path — an incomplete fix for GHSA-c8r8-95hg-mp34. An authenticated administrator using the in-app Agent or the external MCP server can therefore bypass the protected-workspace-file denylist: file.grep can return matching lines from non-hidden protected descendants (for example conf/conf.json, TLS keys, data/snippets/conf.json, data/templates/, data/.siyuan/publishAccess.json, notebook .siyuan internals, or the kernel log), file.copy can copy protected descendants to an ordinary path where file.read can then retrieve them, and unzip can overwrite protected descendants using ordinary, lexically contained ZIP member names. Because file.grep is globally classified as a safe action, it receives no per-call confirmation, and the confirmation cards for file.copy and unzip show only the allowed root arguments. This issue is fixed in version 3.8.4. Suggested title: SiYuan 3.8.0 through 3.8.3 Sensitive-Path Guard Bypass in Recursive MCP File Operations.
Title SiYuan 3.8.0 through 3.8.3 Path Traversal via MCP File Operations
First Time appeared B3log
B3log siyuan
Weaknesses CWE-863
CPEs cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:*
Vendors & Products B3log
B3log siyuan
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N'}

cvssV4_0

{'score': 8.5, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-26T13:23:08.505Z

Reserved: 2026-09-26T02:31:42.100Z

Link: CVE-2026-100633

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Deferred

Published: 2026-09-26T14:16:44.687

Modified: 2026-09-26T14:16:44.800

Link: CVE-2026-100633

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-26T15:15:13Z

Weaknesses