CVE-2026-72800 Overview
CVE-2026-72800 is an information disclosure vulnerability in SiYuan, a self-hosted personal knowledge management application. Versions before v3.7.4 fail to apply publish-access filtering to several internal API endpoints. Authenticated readers can query the getAttributeViewKeysByID endpoint to retrieve complete database column schemas, including descriptions, select vocabularies, and template expressions. The getBlockDefIDsByRefText and getBlockRelevantIDs endpoints enumerate workspace-wide block identifiers without publish scoping. Attackers can use these identifiers to access content in hidden or password-protected documents. The weakness maps to CWE-862: Missing Authorization.
Critical Impact
Authenticated publish-mode readers can exfiltrate schema metadata and content from documents intended to remain private within the SiYuan workspace.
Affected Products
- SiYuan versions prior to v3.7.4
- SiYuan workspaces that expose publish mode to external readers
- Deployments relying on publish scoping or per-document password protection for confidentiality
Discovery Timeline
- 2026-08-12 - CVE-2026-72800 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-72800
Vulnerability Analysis
SiYuan supports a publish mode that exposes a filtered view of the workspace to external readers. The publish layer is expected to restrict which documents, blocks, and metadata are reachable through the internal HTTP API. In affected versions, three endpoints skip that authorization check.
The getAttributeViewKeysByID endpoint returns the raw schema for attribute views, which SiYuan uses to model databases. The response includes column descriptions, select option vocabularies, and template expression source. This exposes intent and structure that authors did not publish.
The getBlockDefIDsByRefText and getBlockRelevantIDs endpoints resolve reference text and related-block queries against the entire workspace index. They return valid block identifiers regardless of publish scope. An attacker can then request block content by ID and bypass the publish filter and per-document password prompts.
Root Cause
The root cause is missing authorization on server-side handlers. The endpoints trust the caller's authenticated session without re-checking whether the requested resource lies within the caller's publish scope. Access control was enforced at the navigation and rendering layer rather than at the API layer.
Attack Vector
Exploitation requires network access to the SiYuan HTTP interface and a valid publish-mode session. The attacker issues direct POST requests to the affected endpoints and parses the JSON responses. No user interaction, elevated privileges, or specialized tooling is required. See the GitHub Security Advisory GHSA-5fhr-f75j-8wr9 and the VulnCheck advisory for endpoint details.
Detection Methods for CVE-2026-72800
Indicators of Compromise
- Repeated POST requests from publish-mode sessions to /api/av/getAttributeViewKeysByID, /api/block/getBlockDefIDsByRefText, or /api/block/getBlockRelevantIDs.
- Enumeration patterns where a single source iterates block identifiers or reference text values in short succession.
- Access to block IDs that were never linked from any published document.
Detection Strategies
- Enable HTTP access logging on the SiYuan kernel and forward logs to a centralized analytics platform for query and correlation.
- Baseline normal publish-reader traffic, then alert on sessions that touch attribute-view or block-reference APIs at higher-than-expected rates.
- Correlate response sizes and status codes against the requested endpoints to identify bulk metadata retrieval.
Monitoring Recommendations
- Track unique block IDs requested per session and alert when the count exceeds published-document scope.
- Monitor for user agents or IP ranges that scrape API endpoints without loading corresponding page assets.
- Review authentication logs for publish-mode accounts that were created or shared broadly before the patch was applied.
How to Mitigate CVE-2026-72800
Immediate Actions Required
- Upgrade all SiYuan instances to v3.7.4 or later.
- Rotate publish-mode access tokens and passwords after upgrading.
- Audit published workspaces for sensitive template expressions, select vocabularies, or password-protected documents that may have been exposed.
Patch Information
The SiYuan maintainers addressed the issue in v3.7.4 by enforcing publish-scope authorization on getAttributeViewKeysByID, getBlockDefIDsByRefText, and getBlockRelevantIDs. Refer to the GitHub Security Advisory GHSA-5fhr-f75j-8wr9 for the fix reference.
Workarounds
- Disable publish mode until the instance is upgraded to v3.7.4.
- Place the SiYuan kernel behind a reverse proxy that blocks the three affected API paths for external readers.
- Move highly sensitive notes to an unpublished workspace or a separate instance not reachable by publish-mode readers.
# Example nginx snippet to block the affected endpoints for external readers
location ~ ^/api/(av/getAttributeViewKeysByID|block/getBlockDefIDsByRefText|block/getBlockRelevantIDs)$ {
deny all;
return 403;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

