SiYuan
CVE-2025-67488
HIGH
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with import access
-
DeliveryCraft ZipSlip archive with traversal paths
-
ExploitUpload via importZipMd
-
ExecutionOverwrite entrypoint.sh on host/container
-
PersistTrigger container restart
-
ImpactExecute attacker code as service user
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 (1) a valid authenticated SiYuan account that has access to the notes import functionality, and (2) the ability to upload a ZIP archive processed by importZipMd. Arbitrary file overwrite works against any writable path the service process can reach via ../ traversal entries. Escalation to full RCE is NOT automatic: it depends on overwriting a file that is later executed - the advisory's concrete path is the official Docker image's entrypoint.sh, which only runs attacker code after a container restart. Limiting factors: authentication (PR:L) narrows the attacker set to credentialed users, which for this single-/few-user self-hosted tool is often the operator; RCE further depends on deployment mode (Docker entrypoint or an equivalent auto-executed file) and on a restart occurring. Non-Docker deployments still face arbitrary file overwrite but the RCE path may differ or be unavailable. |
| Impact | This is a genuine but conditionally-gated priority rather than a drop-everything emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:N) and the 8.8 base score describe a network-reachable, low-complexity flaw that requires only a low-privileged authenticated account (PR:L) and no user interaction, with full C/I/A impact driven by the ZipSlip-to-RCE escalation path. Publicly available exploit code exists (a working PoC ZIP generator is published in the GHSA advisory), which raises practical risk. However, the CVE is NOT in CISA KEV, so there is no confirmed active exploitation, and the EPSS score is low at 0.44% (37th percentile), consistent with a product that is not a mass-exploitation target. The key tension to flag: PR:L means exploitation presupposes the attacker already holds a valid account with access to the notes import feature - for a self-hosted single-user knowledge tool this is often the owner themselves, which sharply limits the realistic external-attacker population. Full RCE is further described as achievable only 'under some circumstances' (notably the official Docker image, by overwriting entrypoint.sh and awaiting a container restart), so the headline RCE outcome is conditional, not guaranteed. Net: real and exploit-code-backed, but the authentication requirement and conditional RCE path make it a high-severity issue with a narrow preconditions window rather than a wormable internet-wide threat. |
| Exploit ScenarioDerived | An authenticated SiYuan user (or an attacker who has obtained valid credentials) crafts a malicious ZIP whose entries use path-traversal names like ../../../../opt/siyuan/entrypoint.sh and uploads it through the notes Markdown import feature, where the vulnerable importZipMd function extracts entries without sanitizing paths, overwriting the targeted file. A public PoC exists that generates exactly this ZIP; on the official Docker image the overwritten entrypoint.sh executes attacker-controlled code on the next container restart, yielding remote code execution. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
An authenticated ZipSlip path-traversal flaw in SiYuan's notes import feature (importZipMd) lets any credentialed user who can reach the import functionality overwrite arbitrary files the service process can write, using specially crafted ../ entries inside an uploaded ZIP; the affected range is all builds up to 0.0.0-20251202123337-6ef83b42c7ce. The primitive is arbitrary file overwrite, and escalation to full code execution is conditional rather than automatic - the advisory's concrete path is overwriting the official Docker image's entrypoint.sh, which only runs attacker code after a container restart, so RCE depends on deployment mode and on a restart occurring. Publicly available exploit code exists (a proof-of-concept ZIP generator is published in the advisory), but there is no confirmation of active exploitation (not in CISA KEV), and EPSS is low at 0.44% (37th percentile), reflecting the credential and deployment gates. A vendor fix is planned for version 3.5.0 but no released patch is available at time of analysis.
RemediationAI
No vendor-released patch is available at time of analysis; the maintainers state a fix is planned for version 3.5.0, so the primary remediation is to upgrade to 3.5.0 (or later) as soon as it ships and to track the GitHub advisory GHSA-gqfv-g4v7-m366 for the release. Until then, restrict the notes import capability so that only fully trusted operators hold accounts able to import ZIP files, and rotate or remove credentials for any untrusted user who has had import access, since the flaw is only reachable by an authenticated user (CVSS PR:L). For Docker deployments, mount the container's startup script and application directories read-only where possible (for example a read-only bind or immutable entrypoint.sh) so a traversal write cannot modify auto-executed files, and run the container with a read-only root filesystem plus a writable volume limited to the notes data directory; note that this blocks the entrypoint.sh-to-RCE path but non-Docker installs may still allow overwrite of other files, so deployment-specific hardening is required. As a further compensating control, run SiYuan as a low-privilege account whose write permissions are confined to its data directory, place the instance behind authentication/reverse-proxy access controls so only trusted users reach the import endpoint, and monitor file-integrity for changes to entrypoint.sh and other service binaries to catch exploitation attempts.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in go
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory / 'Path Traversal'), realized as a classic ZipSlip: the Go function importZipMd in kernel/api/import.go (around line 190, package go/github.com/siyuan-note/siyuan/kernel) extracts user-supplied ZIP archives without validating or canonicalizing the entry names, so archive members whose names contain ../ sequences are written outside the intended import directory. Because the write target is resolved relative to the process's working directory and permissions, any path the SiYuan service account can write - including files under /opt/siyuan in the official Docker deployment - becomes reachable. The advisory demonstrates overwriting entrypoint.sh so that the container's startup script contains attacker code, yielding code execution and some persistence on the next restart; equivalent auto-executed or auto-loaded files could serve as alternative escalation targets depending on how SiYuan is deployed. CPE cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:* marks all versions as affected, and the module note records the vulnerable range as <= 0.0.0-20251202123337-6ef83b42c7ce with no fixed version published. The CVSS 3.1 vector AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H (8.8 High) matches the assessment: remotely exploitable with low complexity but requiring low privileges (a valid account with import access), no user interaction, and high confidentiality, integrity, and availability impact - though impact in practice is gated by the file-overwrite-then-execute chain.
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
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Network-reachable import feature usable by any low-privileged authenticated user (PR:L, AV:N, AC:L, UI:N); arbitrary file overwrite escalating to RCE justifies C:H/I:H/A:H with unchanged scope.
Primary rating from NVD.
CVSS VectorNVD
DescriptionNVD
SiYuan is self-hosted, open source personal knowledge management software. Versions 0.0.0-20251202123337-6ef83b42c7ce and below contain function importZipMd which is vulnerable to ZipSlips, allowing an authenticated user to overwrite files on the system. An authenticated user with access to the import functionality in notes is able to overwrite any file on the system, and can escalate to full code execution under some circumstances. A fix is planned for version 3.5.0.
Executive ViewAI
SiYuan deployments used for note import are exposed to a high-severity file-overwrite flaw that can escalate to code execution in common Docker configurations, affecting any environment where users can reach the import feature. Publicly available exploit code exists, and no vendor-released patch identified at time of analysis, so leadership should prioritize reducing exposure, restricting import access, and monitoring affected instances. The business risk is highest for internet-facing, multi-tenant, or broadly writable SiYuan services where container restarts or weak file permissions could turn a credentialed file overwrite into a broader compromise.
No vendor-released patch identified at time of analysis; interim mitigations include disabling or restricting notes import and importZipMd to trusted administrators, running SiYuan with least privilege, making container root filesystems read-only, removing write access to entrypoint.sh and other service-writable sensitive paths, enabling file-integrity monitoring and alerting on unexpected container restarts, and isolating affected instances from sensitive data and networks until version 3.5.0 is released.
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.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Affected Products (CPE)NVD
SQL injection in SiYuan personal knowledge management (versions <= v3.7.2) lets attackers pass arbitrary SQL statements
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
Reflected XSS in SiYuan knowledge management before 3.5.9.
SiYuan knowledge management system prior to 3.5.5 has a path traversal in /api/file/copyFile allowing arbitrary file ope
SiYuan version 3.0.3 allows executing arbitrary commands on the server. Rated critical severity (CVSS 9.0), this vulnera
NVD
CVE.org
EPSS
GitHub
Exploit-DB