Executive brief
SiYuan is a note-taking application that supports publishing notebooks to the web. The /api/asset/getFileAnnotation endpoint returns PDF annotation files (highlights and notes) without checking whether the document is published or password-protected. This allows anonymous readers or anyone with publish access to view private annotations from forbidden, password-protected, or unpublished documents, potentially exposing sensitive information users intended to keep private.
Technical details
The vulnerability is a missing authorization check (CWE-862) in the /api/asset/getFileAnnotation endpoint. The endpoint retrieves .sya PDF-annotation files but applies only basic authentication (CheckAuth) without enforcing the publish-access, publish-ignore, or password checks that are present in the sibling /assets/* route. The getFileAnnotation endpoint is reachable by the publish RoleReader token and by anonymous accounts when Publish.Auth.Enable is false. An attacker who knows an asset path can exploit this to read private PDF annotations attached to publish-forbidden, password-protected, or unpublished documents. The issue affects only non-encrypted notebooks; encrypted-box annotations are fail-closed and not exposed. The vulnerability was fixed in v3.7.4 by applying the same publish-access filter to getFileAnnotation that is used in the /assets/* route.
Affected products
- SiYuan SiYuan < 3.7.4
Timeline
- 2026-07-23: disclosed: Original advisory GHSA-v7ph-r5r6-4jcj published
- 2026-08-12: disclosed: Duplicate advisory GHSA-mhcc-g592-267j published; NVD entry added
- 2026: patched: Fixed in v3.7.4