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. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →