CVE-2026-85578 Overview
SiYuan through version 3.8.1 contains an authorization bypass vulnerability in the /api/file/getFile endpoint. The flaw allows users with the reader role to retrieve files from notebooks explicitly configured with Visible:false. Attackers can access private workspace contents, including notebook metadata and internal configuration, by supplying the hidden notebook identifier and file path. The vulnerability is classified as Missing Authorization [CWE-862] and affects the note-taking application's access control model for hidden notebooks.
Critical Impact
Reader-role accounts can bypass visibility restrictions and read files from private notebooks, exposing sensitive workspace data and configuration.
Affected Products
- SiYuan note-taking application through version 3.8.1
- Self-hosted SiYuan workspace deployments
- Multi-user SiYuan instances with reader-role accounts
Discovery Timeline
- 2026-09-04 - CVE-2026-85578 published to NVD
- 2026-09-08 - Last updated in NVD database
Technical Details for CVE-2026-85578
Vulnerability Analysis
SiYuan supports notebooks with a Visible:false configuration, intended to hide notebooks from users who lack the appropriate permissions. The /api/file/getFile endpoint fails to enforce this visibility restriction during file retrieval requests. Reader-role accounts can request files from any notebook if they know the notebook identifier and file path. The endpoint returns file contents without validating whether the calling user should have access to the target notebook.
Root Cause
The root cause is missing authorization enforcement on the file retrieval handler. The endpoint checks that a caller is authenticated but does not evaluate notebook-level visibility settings before serving file content. This is a classic Missing Authorization weakness [CWE-862] where access control decisions are absent from a security-relevant code path.
Attack Vector
An authenticated attacker with reader privileges sends a request to /api/file/getFile specifying the path of a file inside a hidden notebook. Because SiYuan notebook identifiers follow predictable structures and file paths inside notebooks are enumerable, an attacker can retrieve notebook metadata such as conf.json, block content, and asset files. The attack requires network access to the SiYuan instance and valid low-privilege credentials. No user interaction is required.
See the GitHub Security Advisory GHSA-8ggq-wq3f-vxrw and the VulnCheck Advisory for SiYuan for additional technical detail.
Detection Methods for CVE-2026-85578
Indicators of Compromise
- Requests to /api/file/getFile from reader-role accounts targeting notebook paths that do not appear in that user's visible notebook list.
- Access log entries showing repeated getFile requests enumerating notebook identifiers or path structures such as /data/<notebook-id>/conf.json.
- Retrieval of notebook conf.json or asset files by accounts that never opened the parent notebook through the UI.
Detection Strategies
- Correlate getFile request paths with the requesting user's notebook membership and flag mismatches.
- Alert on any reader-role account accessing files inside notebooks configured with Visible:false.
- Baseline normal per-user notebook access patterns and flag sudden enumeration of unfamiliar notebook IDs.
Monitoring Recommendations
- Enable verbose HTTP access logging on the SiYuan reverse proxy or application server.
- Forward SiYuan application logs to a centralized SIEM for cross-user access pattern analysis.
- Review authentication and role assignment logs to confirm that reader accounts are limited to intended users.
How to Mitigate CVE-2026-85578
Immediate Actions Required
- Upgrade SiYuan to a release later than 3.8.1 that addresses the authorization bypass once the vendor publishes a fixed version.
- Audit all reader-role accounts and remove any that are no longer required.
- Review notebook contents for sensitive material and rotate any credentials or tokens stored inside hidden notebooks.
Patch Information
Refer to the GitHub Security Advisory GHSA-8ggq-wq3f-vxrw for the authoritative fix version and upgrade instructions. Apply the vendor patch as soon as a fixed release is available.
Workarounds
- Restrict network access to the SiYuan instance so only trusted users can reach the /api/file/getFile endpoint.
- Remove reader-role accounts from multi-user deployments until a patched version is installed.
- Move highly sensitive content out of shared SiYuan instances and into a separate single-user workspace.
- Place SiYuan behind a reverse proxy that denies /api/file/getFile requests from non-administrative sessions.
# Example nginx rule to block reader access to the vulnerable endpoint
location = /api/file/getFile {
# Only allow requests originating from trusted admin subnet
allow 10.0.0.0/24;
deny all;
proxy_pass http://siyuan_backend;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

