CVE-2026-72805 Overview
CVE-2026-72805 is an information disclosure vulnerability in SiYuan, an open-source personal knowledge management application. Versions before v3.7.4 fail to enforce publish-access checks on the getBlockBreadcrumb, getRefText, and getBlockTreeInfos endpoints. Anonymous readers or accounts with the publish RoleReader role can supply block IDs to retrieve content from documents that are marked publish-forbidden or protected by a password. Disclosed data includes document titles, ancestor block content snippets, reference text, and path metadata. The flaw is categorized as a missing authorization weakness [CWE-862].
Critical Impact
Unauthenticated network attackers can read protected document titles, block snippets, reference text, and path metadata from SiYuan instances by iterating block IDs.
Affected Products
- SiYuan note-taking application versions prior to v3.7.4
- SiYuan instances exposing the publish (shared) interface to anonymous users
- SiYuan deployments granting the publish RoleReader role
Discovery Timeline
- 2026-08-12 - CVE-2026-72805 published to the National Vulnerability Database (NVD)
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-72805
Vulnerability Analysis
SiYuan exposes several backend endpoints that resolve information about individual blocks referenced by their block ID. The affected endpoints (getBlockBreadcrumb, getRefText, and getBlockTreeInfos) return contextual metadata used by the client UI to render breadcrumbs, reference labels, and document tree information.
In versions before v3.7.4, these endpoints do not validate whether the caller has publish access to the parent document. The publish subsystem is responsible for restricting anonymous and low-privilege readers to documents the owner explicitly shared. Because the check is missing, callers can request block IDs belonging to documents that are publish-forbidden or password-protected and receive content back in the response.
The returned data leaks document titles, ancestor block content snippets, block reference text, and file path metadata. While the exposure is limited to snippets rather than complete document bodies, the metadata is sufficient to enumerate the structure of protected notebooks and reconstruct sensitive information such as project names, contacts, or credentials embedded in headings.
Root Cause
The root cause is a missing authorization control [CWE-862] on three block-related API handlers. Authorization checks that enforce the publish access policy on read operations were not applied to these specific endpoints, breaking the intended access model where protected documents remain invisible to publish-role users.
Attack Vector
An attacker interacts with the SiYuan publish interface over the network without prior authentication or user interaction. The attacker submits a POST request to one of the vulnerable endpoints containing a valid block ID. Because block IDs are timestamp-derived and enumerable, an attacker can iterate ID ranges to harvest metadata across protected documents. Details are described in the GitHub Security Advisory and the VulnCheck Advisory.
Detection Methods for CVE-2026-72805
Indicators of Compromise
- Unauthenticated POST requests to /api/block/getBlockBreadcrumb, /api/block/getRefText, or /api/block/getBlockTreeInfos from external IP addresses
- High-volume requests to the block endpoints containing sequentially varied block ID values, indicating enumeration
- Access log entries showing anonymous or publish RoleReader sessions retrieving IDs that map to publish-forbidden documents
Detection Strategies
- Review reverse proxy and application access logs for the three affected endpoints and correlate against the list of published documents to identify unauthorized reads
- Alert on request bursts to /api/block/* endpoints exceeding a normal user request rate
- Baseline expected client behavior and flag unauthenticated sessions calling block metadata endpoints outside of a shared document context
Monitoring Recommendations
- Ingest SiYuan web server logs into a centralized logging platform and retain them for at least 90 days
- Monitor for repeated 200-status responses to the affected endpoints from single source IPs
- Track publish interface exposure and alert when SiYuan instances are reachable from untrusted networks
How to Mitigate CVE-2026-72805
Immediate Actions Required
- Upgrade SiYuan to v3.7.4 or later, which enforces publish-access checks on the affected endpoints
- Restrict network access to the SiYuan publish interface using a reverse proxy or firewall until the upgrade is applied
- Rotate any credentials or secrets that were stored in publish-forbidden or password-protected documents and may have been exposed
Patch Information
The vendor fixed the issue in SiYuan v3.7.4 by adding publish-access enforcement to getBlockBreadcrumb, getRefText, and getBlockTreeInfos. Refer to the GitHub Security Advisory GHSA-67x2-mq63-v9vm for full remediation details.
Workarounds
- Disable the publish (shared) interface if it is not required for your deployment
- Place SiYuan behind an authenticating reverse proxy that blocks anonymous access to /api/block/getBlockBreadcrumb, /api/block/getRefText, and /api/block/getBlockTreeInfos
- Remove the publish RoleReader role from untrusted accounts until the patched version is deployed
# Example nginx snippet to block anonymous access to the affected endpoints
location ~ ^/api/block/(getBlockBreadcrumb|getRefText|getBlockTreeInfos)$ {
auth_basic "SiYuan restricted";
auth_basic_user_file /etc/nginx/.siyuan_htpasswd;
proxy_pass http://127.0.0.1:6806;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

