CVE-2026-72806Medium· 5.8▾ SunlitSiYuan: Password (protected) tier omitted in the attribute-view/database publish filter: Reader receives rows of protected documents without the password (publish mode)
▾ Sunlit zone — Low / medium · no exploitation signal
impact 31.9 · likelihood 0.1 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Exploit-prediction probability, daily snapshots since Sep 3.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
0.3%
Last analysed / modified upstream
CVE: This vulnerability corresponds to CVE-2026-72806.
FilterViewByPublishAccess, the filter renderAttributeView applies for Reader sessions drops rows using only the hidden/forbidden check and never checks the publish password. Its three sibling filters all check both tiers. As a result, a publish RoleReader (or the anonymous account when Publish.Auth.Enable is false) who has not entered a document's password still receives every database/attribute-view row bound to that password-protected document, the primary cell (title/ID) and all column values.
FilterViewByPublishAccess (model/publish_access.go:290) drops rows on the hidden/forbidden tier only:
// Table (line 311), Gallery (348), Kanban (385), all identical:
if !CheckPathAccessableByPublishIgnore(bt.BoxID, bt.Path, publishIgnore) {
row = nil // hidden/forbidden dropped, but password NEVER checked
}
The three sibling filters all check both the hidden/forbidden tier and the password tier (password == "" || CheckPublishAuthCookie(...)):
FilterBlockAttributeViewKeysByPublishAccess (line 412)FilterBlockInfoByPublishAccess (line 457)FilterContentByPublishAccess (line 474)So the password (protected) tier is enforced everywhere except this AV/database-view filter. Table layout masks nothing; Gallery and Kanban mask only the cover, keeping the card and its non-cover values. Reachable via renderAttributeView, getAttributeViewKeys, and renderSnapshotAttributeView, all CheckAuth-only.
Reproduced on a live instance (publish mode on 6808, anonymous Reader, no password cookie), against a password-protected document with a database/AV row.
| Check | Path | Result |
|---|---|---|
| Control | getDoc(secretDoc) | 🔒 placeholder, body withheld password gate works normally |
| Test | renderAttributeView(AV) | row leaked : blockID=…rk7jofz, title secret-db-row |
Differential (disable=true) | same filter | 0 rows : hidden tier correctly enforced |
| Differential (password set) | same filter | 1 row : password tier bypassed |
Same filter, same document, same Reader: the hidden tier drops the row, the password tier leaks it isolating the omission.
An anonymous/Reader publish user who has not supplied a protected document's password receives all attribute-view/database rows bound to that document titles, block IDs, and column values defeating the publish-password control for database views. Confidentiality-only. The hidden/forbidden tier is unaffected (correctly enforced).
Add the password check to the drop condition in all three layout branches (Table, Gallery, Kanban), mirroring the sibling filters:
if !CheckPathAccessableByPublishIgnore(...) ||
!(password == "" || CheckPublishAuthCookie(c, passwordID, password)) {
row = nil
}
github.com/siyuan-note/siyuan/kernel < 0.0.0-20260723040913-768427f20f13Upgrade to a patched release:
github.com/siyuan-note/siyuan/kernel 0.0.0-20260723040913-768427f20f13Connected by shared product, vendor, weakness, or advisory.
GHSA-57v5-wqx3-cgj4Medium· 5.8SiYuan: Database view structure (all view names, layout types and per-field visibility) is returned to anonymous readers by /api/av/getAt…
CVE-2026-72790Medium· 5.8SiYuan: Notebook name, document count, size and timestamps are returned for any notebook, including notebooks hidden from readers, by /ap…
CVE-2026-72799Medium· 5.8SiYuan: Missing publish-access filter on the HPath/path-resolution endpoints discloses the private document tree to anonymous readers
CVE-2026-72800Medium· 5.8SiYuan: Missing publish-access filter on getAttributeViewKeysByID discloses database column schema, plus two unscoped block-ID enumeratio…
CVE-2026-68587High· 8.6SiYuan: Full-content disclosure of publish-disabled documents via getHeading*Transaction endpoints (publish mode): reader-reachable rende…
CVE-2026-68586High· 8.6SiYuan: Cross-boundary content disclosure via getBacklinkDoc/getBackmentionDoc (publish mode): reader-reachable rendered DOM of publish-f…