CVE-2026-59854
MediumCVSS 4.9Exploitation Probability (EPSS)
Low risk20th percentile - higher than 20% of all known CVEs
Summary
A vulnerability in SiYuan before version 3.7.1 allows an authenticated administrator or API-token user to copy sensitive credential files (e.g., .git-credentials, .netrc, .pgpass) into the workspace and exfiltrate them via the file API. The issue stems from insufficient path filtering in the util.IsSensitivePath function.
Risk Assessment
An attacker can steal authentication credentials (passwords, tokens, SSH keys) stored in user configuration files, leading to account takeover, access to code repositories, databases, or cloud infrastructure.
Recommendation
Immediately upgrade SiYuan to version 3.7.1 or later. If upgrading is not possible, restrict file API access to trusted users and monitor logs for suspicious file copy requests.
Other vulnerabilities in SiYuan
See all- CVE-2026-45371High
SiYuan is a knowledge management system that prior to version 3.7.0 had security vulnerabilities related to 8 ungated APIs that could modify configuration and SQL index. Users with a valid JWT token could access these APIs, leading to unauthorized changes to server state.
- CVE-2026-41894High
SiYuan is an open-source personal knowledge management system. Prior to 3.6.5, the fix for CVE-2026-30869 only added a denylist check but did not address the root cause – a redundant url.PathUnescape() call in serveExport(). An authenticated attacker can use double URL encoding to traverse directories and read arbitrary workspace files including the full SQLite database, kernel log, and all user documents.
- CVE-2026-77086Critical
SiYuan before v3.7.4 fails to validate the packageName parameter in Bazaar install and uninstall endpoints, allowing authenticated administrators to perform path traversal. Attackers with admin access can write arbitrary files or recursively delete directories by supplying crafted packageName values.
- CVE-2026-74800Critical
SiYuan before v3.7.4 fails to set Content-Disposition and X-Content-Type-Options headers when serving arbitrary file assets, allowing stored cross-site scripting attacks. Authenticated attackers can upload HTML files as assets and execute scripts with full kernel API access when the workspace owner opens the asset link.
- CVE-2026-74799Critical
SiYuan before 3.7.4 registers Go net/http/pprof debug endpoints including heap and goroutine dumps without authentication when --mode flag is not set to exactly prod. Attackers can access /debug/pprof/heap and related endpoints to extract in-memory secrets including AccessAuthCode and AI provider API keys.
- CVE-2026-73056Critical
SiYuan kernel versions before 3.7.4 contain an improper restriction of excessive authentication attempts vulnerability in the CheckAuth() middleware. The middleware accepts the API token via an Authorization header or ?token= query parameter, and neither path is protected by CAPTCHA/lockout. An unauthenticated remote attacker can perform unlimited automated guesses of the API token, especially when a short or weak custom token is configured, and upon success gains full RoleAdministrator access enabling arbitrary file operations and SQL queries.
- CVE-2026-73053Critical
SiYuan versions before v3.7.4 contain a cross-site scripting vulnerability in the unicode2Emoji function that fails to sanitize codepoint branch output. Attackers can craft document icons with hex-encoded markup that executes in the renderer with Node integration enabled, achieving arbitrary code execution on the host system.
- CVE-2026-73052Critical
SiYuan before v3.7.4 stores attribute-view field names without HTML escaping and interpolates them directly into option elements via innerHTML in the sort menu. Attackers can inject markup by renaming a database field to execute arbitrary JavaScript when users open the sort menu, with Node integration enabled in the desktop client enabling code execution.
- CVE-2026-73050Critical
SiYuan versions before v3.7.4 fail to validate or escape the color field in attribute-view select options, allowing stored cross-site scripting through eight unescaped render sites. Attackers can inject event-handler attributes by including quotation marks in the color value, executing arbitrary JavaScript when viewing databases containing the malicious select field.
- CVE-2026-73046Critical
SiYuan before v3.7.4 improperly restricts excessive authentication attempts in the CheckAuth() middleware. The HTTP Basic Authentication branch, which guards nearly the entire /api/* surface, accepts the workspace access code as the Basic Auth password but never consults the CAPTCHA/lockout gate or increments the failure counter used by the cookie/session login path. This allows unauthenticated remote attackers to brute-force the admin access code with unlimited automated requests and obtain full RoleAdministrator access to the kernel. A secondary weakness exists because the access code is compared using a non-constant-time string comparison.
Original NVD description (English source)
SiYuan is an open-source personal knowledge management system. Prior to 3.7.1, POST /api/file/globalCopyFiles accepts attacker-supplied absolute source paths and relies on util.IsSensitivePath in kernel/util/path.go, whose denylist misses common home-directory credential files such as .git-credentials, .netrc, .pgpass, .kube/config, .docker/config.json, and .gnupg, allowing an authenticated administrator or API-token user to copy those files into the workspace and exfiltrate them through the file API. This issue is fixed in versions 3.7.1-alpha.2 and 3.7.1.

