GHSA-7j72-f6wg-cxw6: SiYuan: Anonymous publish-password authentication bypass via getHeadingChildrenDOM / getHeading*Transaction / getBacklinkDoc (publish mode)
(updated )
SiYuan’s publish mode defines a “protected” access level: a document that is publicly listed but requires a password to read (per the product’s own UI help text, protected = “Publicly visible, requires password to access”). The password is enforced on the primary content path (getDoc, via FilterContentByPublishAccess).
Several other content-returning endpoints getHeadingChildrenDOM, getHeadingDeleteTransaction/getHeadingLevelTransaction/ getHeadingInsertTransaction, and getBacklinkDoc/getBackmentionDoc return rendered block DOM with no password check at all. Combined with reader-reachable endpoints that leak a protected document’s internal block IDs, an anonymous reader can retrieve the full body of a password-protected document without the password. This has been reproduced end-to-end on a live instance.
References
- github.com/advisories/GHSA-7j72-f6wg-cxw6
- github.com/siyuan-note/siyuan/commit/2d069dce84a25c959ef0093c72c98e05778ef218
- github.com/siyuan-note/siyuan/security/advisories/GHSA-7j72-f6wg-cxw6
- nvd.nist.gov/vuln/detail/CVE-2026-68584
- www.vulncheck.com/advisories/siyuan-before-authentication-bypass-via-content-endpoints
Code Behaviors & Features
Detect and mitigate GHSA-7j72-f6wg-cxw6 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →