Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDrive authenticated agent to MCP server
-
ExploitInvoke asset upload with ~/.env path
-
ExecutionServer copies file into workspace assets
-
ImpactRead secrets back via /assets/ over HTTP
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 | Requires (1) SiYuan's agent-facing MCP server to be enabled and reachable, (2) the attacker to drive an agent/MCP client authenticated with a valid SiYuan API token (Conf.Api.Token, an agent/admin principal - the advisory PoC used a Bearer token), and (3) invocation of the asset tool's 'upload' action with a 'files' path. The read is bounded to local files on the server host whose names are NOT on the 17-entry dotfile blacklist - concretely ~/.env, .env.local, .env.production and similar, plus the other documented omissions ~/Library/** (macOS Keychain), other users' home directories (/home/<otheruser>/), and Windows %APPDATA%/%LOCALAPPDATA%. Limiting factors: authentication to the MCP surface is required, the MCP asset tool must be exposed, only confidentiality is affected (no write/integrity or availability impact), and files already covered by the blacklist (.ssh, .aws, .kube, .docker, .gnupg, .git-credentials, credentials*, id_*) remain blocked. |
| Impact | This is a moderate, not emergency, priority. The input CVSS 4.0 base score is 6.9 (Medium) with a local attack vector (AV:L), low complexity (AC:L), no attack requirements (AT:N), and confidentiality-only impact (VC:H, VI:N, VA:N, no subsequent-system impact). The vuln.today decision label is 'this_month', consistent with a Medium, confidentiality-only, authentication-gated flaw rather than an act_now/emergency item. No EPSS score and no CISA KEV listing were provided, so there is no signal of active or widespread exploitation - treat exploitation status as 'no public exploit identified' in the KEV/active sense, but note that the GHSA advisory itself documents a fully executed lab PoC (a public PoC reference exists; it is not verified as packaged, working exploit code). A key conflict: the supplied CVSS 4.0 vector contains PR:N (unauthenticated), yet the advisory's own PoC drives the MCP endpoint with a valid Bearer API token (Conf.Api.Token, an agent/admin principal) and the description explicitly says 'Authenticated attackers' - so the PR:N metric appears inconsistent with the documented trigger; verify authentication requirements with the vendor. Net: a real but bounded issue - it requires the MCP asset surface and a valid token, impacts confidentiality only, and affects a niche product, so it ranks below internet-facing unauthenticated RCE despite a Medium CVSS. |
| Exploit ScenarioDerived | An adversary able to drive an agent that is connected to a SiYuan instance's MCP server (the same threat model as the parent advisory GHSA-p23f-cm6q-2qp8) and holding a valid API token invokes the asset tool's 'upload' action with a path such as /home/siyuan/.env. The incomplete sensitive-path blacklist in validateAssetUploadPaths accepts the path, the server copies the file into data/assets/ under a generated name, and the attacker then retrieves the secret contents via an authenticated GET /assets/<name> request. A working PoC against SiYuan v3.8.6 (Docker b3log/siyuan) is documented step-by-step in the GHSA advisory, so the attack is proven rather than theoretical. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 25, 2026
SiYuan's MCP asset tool fails to block dotenv-style secret files, so an attacker who can drive an authenticated MCP client can copy a file such as ~/.env from the server host into the workspace and then read it back over HTTP from /assets/. The flaw is an incomplete fix of GHSA-p23f-cm6q-2qp8: the sensitive-path check is a 17-entry home-dotfile blacklist (.ssh, .aws, .kube, .docker, .gnupg, .git-credentials, credentials*, id_*) that omits .env, .env.local, .env.production, ~/Library, other users' home directories and Windows AppData. Public proof-of-concept reproduction steps exist and were executed against a self-hosted SiYuan 3.8.6 lab; because the MCP server must be exposed and the attacker needs a valid SiYuan API token, the issue is a moderate, not emergency, priority (this_month).
RemediationAI
Vendor-released patch: upgrade SiYuan to 3.8.7 or later (go/siyuan-note fixed in v3.8.7), per https://github.com/siyuan-note/siyuan/security/advisories/GHSA-q768-4j87-gf3w. If upgrading cannot be done immediately, disable or unbind SiYuan's MCP server so the agent-facing endpoint is not reachable by untrusted clients - this removes the AI-agent integration, which is the trade-off - and restrict reachability of the MCP endpoint to localhost or a trusted agent host at the network layer, which lowers exposure but does not correct the blacklist gap. Rotate any SiYuan API tokens (Conf.Api.Token) used by agent principals, and treat home-directory secrets as potentially disclosed: rotate credentials stored in ~/.env, .env.local, .env.production, ~/Library, other users' home directories, or Windows %APPDATA%/%LOCALAPPDATA% on hosts running an exposed 3.8.7-previous instance. A fragile interim workaround is to keep secret files at paths the existing guard already rejects (for example under .ssh, .aws, .kube or a credentials*-prefixed name), but this depends entirely on blacklist internals and should not be relied on once the server version is fixed; the vendor's suggested durable fix is to invert the model so the MCP asset tool only accepts operator-granted path roots.
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
CWE-22 path traversal in the Go codebase behind SiYuan's agent-facing MCP server. The fix for the parent advisory GHSA-p23f-cm6q-2qp8 (commit b26a4a3) added validateAssetUploadPaths in kernel/mcp/tools/asset.go, which resolves each 'files' argument with filepath.Abs and then consults util.IsSensitivePath (kernel/util/path.go:485). That routine is a blacklist: it walks system directories, Windows system prefixes, workspace-internal conf/temp, a home dotfile whitelist of 17 entries, and names beginning with credentials or id_. It does not enumerate .env-family filenames, macOS ~/Library, other users' home directories, or Windows %APPDATA%/%LOCALAPPDATA%. Once validateAssetUploadPaths accepts a path, AssetTool.upload flows into InsertLocalAssets (kernel/model/upload.go:178), which copies the local file into the workspace data/assets/ directory under a generated asset name; the workspace then serves that file back via GET /assets/<name> to an authenticated session. The copy-in step is what turns a local file selection into a read oracle reachable purely over HTTP - no filesystem access is needed on the attacker side. Affected package coordinates are cpe:2.3:a:siyuan-note:siyuan (Go module go/siyuan-note, vulnerable <= 3.8.6). Because the guard enumerates forbidden names rather than granting allowed path roots (as kernel/mcp/tools/file.go does for workspace-relative access), any secret-bearing filename absent from the list remains reachable.
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:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
The documented PoC requires a valid API token so PR:L (not PR:N); the flaw reads files local to the server host (AV:L), is trivially triggered (AC:L), and leaks file contents only, so C:H with I:N/A:N.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
1DescriptionCVE.org
SiYuan before 3.8.7 contains a path traversal vulnerability in the MCP asset tool because validateAssetUploadPaths relies on an incomplete sensitive-path blacklist that omits .env and other secret files. Authenticated attackers driving the MCP asset upload action can copy such local files into the workspace and read them back via /assets/ over HTTP.
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-109429
GHSA-659w-8mpv-qcqc
NVD
CVE.org
EPSS
Exploit-DB