CVE-2026-72808 Overview
CVE-2026-72808 is an information disclosure vulnerability in SiYuan, a self-hosted personal knowledge management application. The flaw affects versions up to and including v3.7.2 and is fixed in v3.7.4. The /api/asset/getFileAnnotation endpoint returns .sya PDF-annotation file content without enforcing a publish-access check. Unlike the /assets/* route, which requires publish access and a password, this endpoint is gated only by CheckAuth. An anonymous reader (when publish authentication is disabled) or any publish RoleReader who knows an asset path can read private PDF annotations from publish-forbidden, password-protected, or unpublished documents. The issue is classified under [CWE-862] Missing Authorization.
Critical Impact
Unauthenticated or low-privileged remote users can retrieve private PDF highlights and notes from documents that owners believed were access-restricted.
Affected Products
- SiYuan versions up to and including v3.7.2
- SiYuan publish endpoints exposing the /api/asset/getFileAnnotation route
- Non-encrypted SiYuan notebooks containing .sya PDF-annotation files
Discovery Timeline
- 2026-08-12 - CVE-2026-72808 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-72808
Vulnerability Analysis
SiYuan stores PDF annotation data such as highlights and margin notes in .sya sidecar files associated with uploaded assets. The application exposes two paths to reach asset-related resources when publishing a workspace. The /assets/* route enforces both publish-access checks and password protection before serving files. The /api/asset/getFileAnnotation API endpoint, however, was implemented with only the CheckAuth middleware.
The authorization gap means the endpoint does not verify whether the requesting session has publish access to the parent document. It also does not verify whether the parent document is password-protected, publish-forbidden, or unpublished. Anyone who can reach the publish surface and supply a valid asset path can retrieve annotation content. Encrypted notebooks are unaffected because their annotation data is stored in an encrypted container.
Root Cause
The root cause is a missing authorization check on a sensitive API route. The getFileAnnotation handler trusts that authentication alone is sufficient. It does not replicate the publish-access and password gates that protect the sibling asset route, producing an inconsistent authorization model across endpoints serving related data.
Attack Vector
An attacker sends an HTTP request to /api/asset/getFileAnnotation on a reachable SiYuan publish instance, supplying an asset path corresponding to a target PDF. When publish authentication is disabled, no credentials are required. When publish authentication is enabled, a RoleReader session that knows or can enumerate asset paths can issue the same request. The server returns the raw .sya annotation content, disclosing highlights and notes from documents the requester should not be able to read. Additional technical detail is available in the GitHub Security Advisory and the VulnCheck Advisory.
Detection Methods for CVE-2026-72808
Indicators of Compromise
- HTTP requests to /api/asset/getFileAnnotation from unauthenticated clients or low-privileged RoleReader sessions.
- Successful 200 OK responses returning .sya payloads for assets belonging to publish-forbidden or password-protected documents.
- Repeated requests that iterate over asset path values, indicating enumeration behavior against the annotation endpoint.
Detection Strategies
- Review SiYuan reverse proxy or application logs for access patterns targeting /api/asset/getFileAnnotation and correlate with the publish state of referenced assets.
- Alert on requests that resolve to .sya content when the source session lacks publish access to the parent document.
- Compare request volume to the annotation endpoint against baseline usage for the workspace to identify scraping activity.
Monitoring Recommendations
- Ingest SiYuan and upstream web server logs into a centralized logging platform and retain them long enough to support retrospective review.
- Track outbound egress from the SiYuan host for unexpected transfers of annotation data.
- Monitor for authentication configuration changes that disable publish authentication, which broadens exposure of this endpoint.
How to Mitigate CVE-2026-72808
Immediate Actions Required
- Upgrade SiYuan to v3.7.4 or later, which enforces publish-access checks on /api/asset/getFileAnnotation.
- Enable publish authentication and set a strong password on any exposed SiYuan publish instance until the upgrade is complete.
- Audit historical access logs for the annotation endpoint to identify whether private annotations were retrieved by unauthorized parties.
Patch Information
The SiYuan maintainers released a fix in v3.7.4. The patch adds the missing publish-access and password enforcement to the getFileAnnotation handler so its authorization model matches the /assets/* route. Details are available in the GitHub Security Advisory GHSA-v7ph-r5r6-4jcj.
Workarounds
- Restrict network exposure of the SiYuan publish interface to trusted networks or place it behind a VPN.
- Use encrypted notebooks for sensitive PDF annotations, as encrypted-box annotations are not exposed by this endpoint.
- Block requests to /api/asset/getFileAnnotation at an upstream reverse proxy until the SiYuan instance is patched.
# Example nginx snippet to block the vulnerable endpoint pre-patch
location = /api/asset/getFileAnnotation {
return 403;
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

