CVE-2026-72797 Overview
CVE-2026-72797 is an information disclosure vulnerability in SiYuan, an open-source personal knowledge management application. Versions prior to v3.7.4 expose encrypted notebook metadata through the getEncryptedNotebookStatus endpoint without enforcing publish-access filtering. Anonymous readers and publish-mode accounts can enumerate encrypted notebook identifiers, names, and current unlock states. The flaw is categorized under CWE-862: Missing Authorization and reveals sensitive notebook names along with in-memory decryption state to unauthenticated network attackers.
Critical Impact
Unauthenticated remote attackers can enumerate all encrypted notebooks on a SiYuan instance, exposing sensitive titles and identifying which notebooks are currently unlocked in memory.
Affected Products
- SiYuan versions before v3.7.4
- SiYuan instances configured for publish/shared access
- SiYuan deployments exposing the kernel API over a network
Discovery Timeline
- 2026-08-12 - CVE-2026-72797 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-72797
Vulnerability Analysis
The vulnerability resides in the getEncryptedNotebookStatus kernel endpoint. This endpoint returns a list of encrypted notebooks along with each notebook's identifier, display name, and current lock state. The endpoint does not verify whether the caller has publish-mode authorization or session privileges before returning data.
As a result, any unauthenticated network client that can reach the SiYuan instance receives full metadata for encrypted notebooks. This includes notebooks that the user has explicitly protected with encryption. The unlock state disclosure allows attackers to time follow-on attacks when a notebook is actively decrypted in memory.
Root Cause
The root cause is missing authorization enforcement on a sensitive API route [CWE-862]. The handler responds to requests without validating the caller's session context or publish-access filter. Endpoints that expose encrypted resource metadata should require the same access checks as the underlying content itself.
Attack Vector
Exploitation requires only network reachability to the SiYuan kernel API. An attacker issues an HTTP request to the getEncryptedNotebookStatus endpoint and parses the JSON response. No authentication, user interaction, or elevated privileges are needed. The response reveals notebook identifiers usable for further enumeration and the real-time lock state of each encrypted notebook. See the GitHub Security Advisory GHSA-f2rw-w22v-54vh for additional technical detail.
Detection Methods for CVE-2026-72797
Indicators of Compromise
- HTTP requests to the /api/notebook/getEncryptedNotebookStatus endpoint from unauthenticated or unexpected source addresses
- Repeated polling of the endpoint suggesting enumeration of lock-state transitions
- Access log entries showing the endpoint returning notebook metadata to sessions without publish-mode credentials
Detection Strategies
- Enable verbose access logging on the SiYuan kernel and alert on hits to getEncryptedNotebookStatus originating from external networks
- Correlate endpoint access with subsequent requests targeting the enumerated notebook identifiers
- Baseline normal API usage patterns and flag anonymous callers that query encrypted notebook status
Monitoring Recommendations
- Monitor reverse proxy or WAF logs fronting SiYuan for requests to notebook status endpoints without valid session cookies
- Track outbound egress from SiYuan hosts to detect follow-on data exfiltration after enumeration
- Review authentication and publish-mode session logs for anomalous read activity against encrypted resources
How to Mitigate CVE-2026-72797
Immediate Actions Required
- Upgrade SiYuan to version v3.7.4 or later where the endpoint enforces publish-access filtering
- Restrict network exposure of the SiYuan kernel API to trusted clients only
- Audit access logs for prior calls to getEncryptedNotebookStatus to determine whether metadata was previously exposed
Patch Information
SiYuan v3.7.4 addresses the missing authorization check on the getEncryptedNotebookStatus endpoint. The fix adds publish-access filtering so that anonymous readers and publish-mode accounts no longer receive encrypted notebook identifiers, names, or lock states. Refer to the GitHub Security Advisory and the VulnCheck Advisory for release details.
Workarounds
- Place SiYuan behind an authenticating reverse proxy that blocks unauthenticated requests to notebook API endpoints
- Bind the SiYuan kernel to localhost or a private interface until the patch can be applied
- Use firewall rules or ACLs to restrict access to the kernel API port to known administrative source addresses
# Example nginx rule to block anonymous access to the vulnerable endpoint
location /api/notebook/getEncryptedNotebookStatus {
if ($http_cookie !~ "siyuan_session") {
return 403;
}
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.

