Executive brief
SiYuan is a note-taking and knowledge management application that supports encrypted notebooks. In publish mode (used for sharing notebooks publicly), the application exposed encryption key-derivation material and wrapped encryption keys through unauthenticated endpoints, allowing attackers to download the cryptographic components needed for password cracking. Attackers can perform unlimited offline brute-force attacks against the master password without any rate limiting, potentially compromising the confidentiality of all encrypted notebooks.
Technical details
The vulnerability stems from improper credential protection (CWE-522) in two endpoints: POST /api/system/getConf and POST /api/notebook/getNotebookConf. The getConf endpoint leaks the NotebookCrypto configuration object containing the global Argon2id salt (MasterSalt), key-derivation function parameters (KDFParams), and cryptographic verifiers (KEKVerifier, KEKMAC, VerifierNonce) to non-administrator roles including anonymous readers. The getNotebookConf endpoint additionally exposes the wrapped data encryption key (WrappedDEK) for individual notebooks. An attacker can derive the key-encryption key (KEK) from any candidate password using the leaked salt and parameters, then verify correctness offline against the KEKVerifier or KEKMAC with no server interaction, rate limiting, or logging. This converts the encrypted notebook's security from a remote pre-authentication assumption into a purely local offline cracking problem, fully parallelizable on GPUs. The vulnerability is fixed in v3.7.4 by restricting NotebookCrypto disclosure to minimal metadata and applying reader-role filtering to notebook configuration endpoints.
Affected products
- SiYuan SiYuan <= 3.7.2
Timeline
- 2026-08-12: disclosed
- 2026-07-24: patched: Fix released in v3.7.4 (patched version)