CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-72805

CVE-2026-72805: Missing Authorization in SiYuan Note Block APIs Leads to Information Disclosure

Alon Barad
Alon Barad
Software Engineer

Sep 4, 2026·6 min read·4 visits

Executive Summary (TL;DR)

Missing publish-access checks in SiYuan Note block APIs allow unauthorized access to protected document content and layout metadata via direct API requests.

SiYuan Note versions before v3.7.4 fail to enforce publish-access checks on several block API endpoints. This vulnerability allows anonymous readers or authorized accounts with low-privileged roles to retrieve sensitive document titles, ancestor block content snippets, reference text, and path metadata for publish-forbidden or password-protected documents by supplying target block IDs.

Vulnerability Overview

SiYuan Note is an open-source, local-first personal knowledge management system that supports fine-grained block-level editing and markdown formats. To facilitate content sharing, the application includes a 'Publish Mode' that lets users serve selected notebooks to external readers. Within this model, administrators can restrict access down to individual notebooks or documents, enforcing password protection or completely forbidding publication.\n\nThe attack surface for this system includes the API endpoints exposed during Publish Mode. While primary content-delivery APIs are designed to check read authorization, several metadata and auxiliary endpoints did not undergo identical scrutiny. Specifically, the application exposed endpoints for retrieving block structures, parent paths, and block references without validating whether those blocks belonged to restricted files.\n\nThis flaw is classified under CWE-862 (Missing Authorization) and carries a CVSS v4.0 base score of 6.9. It allows unauthenticated network attackers or low-privileged accounts to bypass document-level privacy controls. By submitting requests targeting specific block identifiers, an unauthorized actor can partially reconstruct protected document trees and extract restricted content.

Root Cause Analysis

The root cause of CVE-2026-72805 lies in the uneven application of authorization filters within the block-related API routers in the kernel/api/block.go module. The core content-retrieval function, getBlockInfo, implemented a validation routine known as checkBlockPublishAccess. This helper validated if the request environment operated under a read-only context and verified whether the target block ID belonged to an authorized, published resource.\n\nHowever, several parallel API endpoints handling block metadata did not execute this validation logic. The affected handlers include getBlockTreeInfos, getBlockSiblingID, getBlockRelevantIDs, getRefText, and getBlockBreadcrumb. These endpoints processed incoming JSON requests and directly invoked corresponding database service layers such as model.GetBlockTreeInfosInBox or model.BuildBlockBreadcrumbInBox using only the user-provided block ID.\n\nBecause the backend failed to assert whether the queried block identifier was part of a published, non-password-protected notebook, the database queries succeeded unconditionally. This design flaw allowed the retrieval of structure and content snippets from blocks inside encrypted SQLCipher databases, crossing planned notebook boundaries. Security boundaries became ineffective because the application assumed the client already possessed legitimate access based solely on knowing or guessing a block ID.\n\nmermaid\ngraph LR\n A["Unauthenticated Attacker"] --> B["API Endpoint: /api/block/getRefText"]\n B --> C{"Check Authorization?"}\n C -->|No| D["Query SQLCipher DB directly"]\n D --> E["Leak sensitive block content"]\n

Code Analysis

The patch resolved the authorization omissions by updating the routing handlers in kernel/api/block.go. Prior to the fix, the getBlockTreeInfos handler queried block tree information without validating the requested block IDs. The patch introduces a helper function filterBlockIDsByPublishAccess to sanitize the requested block list prior to database query execution.\n\ngo\n// Patched getBlockTreeInfos in kernel/api/block.go\nboxID := encryptedNotebookFromArg(arg)\nids = filterBlockIDsByPublishAccess(c, ids, boxID)\nret.Data = model.GetBlockTreeInfosInBox(ids, boxID)\n\n\nFor endpoints like getBlockSiblingID, getBlockRelevantIDs, getRefText, and getBlockBreadcrumb, the developers integrated isBlockPublishAccessible. If the requested block fails this access check, the endpoint returns an empty dataset or an error code instead of querying the backend model:\n\ngo\n// Patched verification logic in kernel/api/block.go\nif !isBlockPublishAccessible(c, id, boxID) {\n ret.Data = map[string]string{\n "parent": "",\n "next": "",\n "previous": "",\n }\n return\n}\n\n\nAdditionally, database querying logic in kernel/model/publish_access.go was refactored. The function CheckBlockIdAccessableByPublishAccess now delegates execution to CheckBlockIdAccessableByPublishAccessInBox. This forces lookups to remain bounded within the specific notebook (boxID) context, preventing attackers from bypassing access restrictions by targeting blocks stored in unlinked or encrypted notebooks.

Exploitation

An attack targeting CVE-2026-72805 requires the target SiYuan Note instance to run in Publish Mode. The attacker must obtain or predict a valid block ID belonging to a forbidden or password-protected document. Block identifiers in SiYuan are unique keys that are sometimes exposed in transaction logs, public references, or predictable sequential structures.\n\nOnce a block ID is identified, the attacker crafts direct HTTP POST requests to the vulnerable endpoints. For example, querying /api/block/getRefText with a restricted block ID bypasses access control. The backend retrieves the database representation of the block and responds with the raw text contents, ignoring the fact that the notebook itself is publish-forbidden.\n\njson\nPOST /api/block/getRefText HTTP/1.1\nHost: target-instance.local\nContent-Type: application/json\n\n{\n "id": "20260724000002-docid01"\n}\n\n\nBy executing similar queries against the sibling and breadcrumb endpoints, the attacker can map the structural layout of the private document tree. This step-by-step extraction enables an unauthorized party to reconstruct complete document paths, titles of parent folders, and content flows without providing any authentication credentials.

Impact Assessment

The security impact of this vulnerability is categorized as moderate confidentiality loss, corresponding to a CVSS v4.0 base score of 6.9. Because the vulnerability is restricted to information disclosure, there is no threat to system integrity or availability. However, for users relying on password protection or publishing restrictions to protect intellectual property or sensitive logs, this vulnerability constitutes a direct bypass of those security controls.\n\nThe scope is local to the published notebook instance, but the impact can extend to secondary boundaries. This is because document hierarchies or breadcrumbs may leak information about user-system file paths or other organizational structures. The exploitation complexity is low, and no user interaction is required, raising the likelihood of successful automated scraping if block IDs are discovered.\n\nCurrently, there are no records indicating active exploitation in the wild, nor have weaponized exploit payloads been cataloged. The EPSS score remains low, suggesting that mass targeting of this vulnerability is unlikely. Nevertheless, because private knowledge bases often contain high-value data such as internal hostnames, passwords, and sensitive narratives, prompt mitigation is necessary.

Remediation

The primary remediation path is upgrading the SiYuan Note application to version v3.7.4 or later. This release introduces complete authorization validation on all exposed metadata and relational block endpoints. The security mechanisms fully integrate the isBlockPublishAccessible validation, preventing queries from escaping the authorized scope.\n\nFor instances where immediate updates are impractical, administrators should disable Publish Mode entirely. If the notebook is strictly meant for private use, keeping Publish Mode inactive removes the vulnerable attack surface from network exposure. This is the most effective operational workaround to guarantee confidentiality.\n\nAdditionally, network-level access controls should be deployed. Administrators can restrict traffic to the SiYuan Note interface via a reverse proxy (e.g., Nginx, Caddy) combined with IP address filtering or HTTP basic authentication. If Publish Mode is required for a subset of users, Web Application Firewall (WAF) policies should be configured to drop unauthenticated external traffic directed to /api/block/getBlockBreadcrumb, /api/block/getRefText, /api/block/getBlockTreeInfos, /api/block/getBlockSiblingID, and /api/block/getBlockRelevantIDs.

Fix Analysis (1)

Technical Appendix

CVSS Score
6.9/ 10
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N
EPSS Probability
0.24%
Top 85% most exploited

Affected Systems

SiYuan Note

Affected Versions Detail

Product
Affected Versions
Fixed Version
siyuan
siyuan-note
>= 0, < 3.7.43.7.4
AttributeDetail
Vulnerability IDCVE-2026-72805
Weakness ClassCWE-862 (Missing Authorization)
CVSS v4.0 Score6.9 (Medium)
Attack VectorNetwork (AV:N)
Exploit StatusNone (No public PoC or weaponized exploit)
KEV StatusNot listed

MITRE ATT&CK Mapping

T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-862
Missing Authorization

The software does not perform an authorization check when an actor attempts to access a resource or perform an action.

Vulnerability Timeline

Official security patch committed to the siyuan-note/siyuan repository
2026-07-23
Vulnerability coordination completed; officially disclosed and assigned CVE-2026-72805
2026-08-12
CVE record updated on CVE.org
2026-08-14
Vulnerability details finalized in the National Vulnerability Database (NVD)
2026-08-26

References & Sources

  • [1]GitHub Security Advisory GHSA-67x2-mq63-v9vm
  • [2]Official SiYuan Fix Commit
  • [3]VulnCheck Security Advisory

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•15 minutes ago•CVE-2026-72806
5.8

CVE-2026-72806: Missing Authorization in SiYuan Attribute View Rendering Leads to Information Disclosure

An authorization bypass vulnerability in SiYuan prior to v3.7.4 allows unauthenticated remote attackers to access rows, block IDs, and custom attributes of password-protected documents via the attribute view rendering endpoint.

Alon Barad
Alon Barad
0 views•7 min read
•about 2 hours ago•CVE-2026-72804
9.2

CVE-2026-72804: Authentication Bypass and Sensitive Information Exposure in SiYuan Graph Endpoints

SiYuan before version 3.7.4 contains an authentication bypass vulnerability within its graph visualization API endpoints, allowing unauthenticated remote attackers to extract sensitive node metadata and content from password-protected documents.

Alon Barad
Alon Barad
3 views•7 min read
•about 3 hours ago•CVE-2026-72802
6.9

CVE-2026-72802: Sensitive Information Disclosure via Administrative Asset Resolvers in SiYuan Note

SiYuan Note versions prior to v3.7.4 contain an information disclosure vulnerability in the `/api/asset/resolveAssetPath` endpoint. This endpoint returns absolute backend filesystem paths unmodified to CheckAuth-only requests. Low-privileged users or unauthenticated readers under publish mode can exploit this to leak the local directory layout, operating system username, and overall host deployment structure.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 4 hours ago•CVE-2026-72801
8.7

CVE-2026-72801: Information Disclosure of Cryptographic Key Material in SiYuan

An access control vulnerability in the SiYuan personal knowledge management platform before version v3.7.4 exposes notebook encryption parameters to unauthenticated remote attackers. When the platform is configured in Publish Mode, specific API endpoints fail to enforce authorization checks. This access failure leaks key-derivation materials, password verifiers, and wrapped database keys to anonymous network clients.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 6 hours ago•CVE-2026-72800
5.8

CVE-2026-72800: Missing Authorization in SiYuan Personal Knowledge Management System

A security vulnerability in the SiYuan local-first personal knowledge management system allows unauthenticated remote attackers to bypass logical boundary controls in publish (read-only) mode. By interacting with endpoints that lack proper publish-access validation, an attacker can disclose the application's internal database schemas and harvest block IDs across both public and private notebooks. This metadata leakage compromises the confidentiality of restricted documents and provides foundational information for targeted extraction.

Alon Barad
Alon Barad
3 views•5 min read
•about 7 hours ago•CVE-2026-72803
6.9

CVE-2026-72803: Information Disclosure via Missing Authorization in SiYuan API

An information disclosure vulnerability exists in the SiYuan personal knowledge management system versions prior to v3.7.4. The application fails to enforce publish-access filters on block attribute retrieval endpoints. Consequently, unauthenticated remote attackers can bypass document-level protection rules (such as password protection or disabled-publish flags) to retrieve sensitive block-level attributes, including aliases, memos, block names, and custom metadata fields, by querying the API using guessed or known block IDs.

Alon Barad
Alon Barad
5 views•7 min read