Summary
CVE-2026-74904 is a missing authorization vulnerability affecting SiYuan Note versions prior to 3.7.4. Seventeen block content and metadata API handlers in kernel/api/block.go fail to enforce publish-mode read restrictions, allowing anonymous readers of a published workspace to retrieve private block content-derived text, structural metadata, and block existence information. The flaw carries a CVSS score of 8.7 (High).
Technical details
- Root cause: the affected handlers (including
getRefText,checkBlockExist, andgetBlockBreadcrumb, among 17 total endpoints) perform basic authentication checks but omit the publish-access filtering (IsReadOnlyRoleContext-style guards) applied elsewhere in the API. - Trigger conditions: the SiYuan workspace must have publish mode enabled, exposing the kernel API to network-reachable anonymous "publish-mode reader" requests.
- Attack vector: network — no authentication, privileges, or user interaction required; an attacker simply issues requests against the exposed endpoints with arbitrary block IDs.
- Impact: disclosure of block content text, structural/tree metadata, word counts, sibling/parent relationships, and existence confirmation for arbitrary blocks across the entire workspace, even those not intended to be published.
Affected software
- SiYuan Note (b3log / siyuan-note): all versions prior to 3.7.4
- Fixed in: SiYuan Note 3.7.4 and later
Severity
- CVSS v4.0: 8.7 (High) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS v3.1: 7.5 (High) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Mitigation and recommended actions
- Immediate: upgrade SiYuan Note to version 3.7.4 or later, where the affected block API endpoints enforce proper publish-access authorization checks.
- If no patch can be applied immediately: disable publish mode on internet-exposed SiYuan workspaces, or restrict network access to the kernel API to trusted hosts/VPN until the upgrade can be completed.

