Executive brief
SiYuan is a note-taking and knowledge management application that supports encrypted notebooks for storing sensitive information. A vulnerability in the getEncryptedNotebookStatus API endpoint allows anonymous users or publish-mode readers to discover the existence, names, and current unlock status of all encrypted notebooks, defeating the privacy protections those notebooks are designed to provide. Since encrypted notebooks are typically named after their sensitive contents, this disclosure exposes private topics and reveals when encrypted data is decrypted in memory.
Technical details
The POST /api/notebook/getEncryptedNotebookStatus endpoint registers with CheckAuth permission only, permitting access by publish-mode RoleReader tokens and anonymous accounts when Publish.Auth.Enable is false. The handler contains no authorization filtering for published-access visibility and unconditionally returns {id, name, unlocked} tuples for every encrypted notebook, along with additional metadata (enabled, count, migrationPending, etc.). This contrasts with lsNotebooks, a sibling endpoint that properly filters to show only publish-visible notebooks. The vulnerability was introduced in commit f2d966659 ("Expose encrypted notebook unlock status to plugins") and remains unfixed. Attack vector is network-based with no authentication required, though the attacker must either know the application is in publish mode or have network access to the internal API port. The live unlocked status flag serves as a secondary information leak, indicating precisely when an encrypted notebook's decrypted contents reside in memory.
Affected products
- SiYuan SiYuan <= 3.7.2
Timeline
- 2026-07-24: disclosed: Original advisory GHSA-f2rw-w22v-54vh published
- 2026-08-12: advisory: Duplicate advisory GHSA-rchc-g58m-88jm published; CVE-2026-72797 assigned
- 2026-09-04: other: GHSA-rchc-g58m-88jm withdrawn as duplicate