Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-85578

CVE-2026-85578: SiYuan Authorization Bypass Vulnerability

CVE-2026-85578 is an authorization bypass flaw in SiYuan that allows readers to access hidden notebook files through the /api/file/getFile endpoint. This post explains its impact, affected versions, and mitigation steps.

Published:

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.
bash
# 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.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.