CVE-2026-85579 in SiYuan
Summary
by MITRE • 09/04/2026
SiYuan is affected by an information disclosure vulnerability (confirmed in v3.8.1, fixed in v3.8.2) in the reader-accessible POST /api/transactions/undoState endpoint. The endpoint returns the peekMutatedRootIDs list from the global undo-log stack for a caller-supplied root ID without applying publish-access visibility filtering. An authenticated reader who knows the root ID of a visible document can obtain the internal root IDs of other documents (including private or unpublished ones) modified in the same cross-document transaction, disclosing internal identifiers and cross-document relationships. Document body contents are not directly exposed.
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Analysis
by VulDB Data Team • 09/04/2026
The vulnerability identified in SiYuan versions prior to 3.8.2 represents a significant information disclosure flaw within the application's undo management subsystem. Specifically, this issue resides in the POST /api/transactions/undoState endpoint, which is accessible to authenticated users with reader-level permissions. The core technical deficiency lies in the failure of the server-side logic to enforce publish-access visibility filtering when processing requests for transaction state data. When a user provides a specific root ID associated with a document they have permission to view, the API returns the peekMutatedRootIDs list from the global undo-log stack without verifying whether those referenced IDs belong to documents that are also visible or published according to the requester's access rights. This oversight allows an attacker who possesses valid credentials and knowledge of at least one root ID for a public document to enumerate internal identifiers belonging to private, unpublished, or restricted documents that were part of the same cross-document transaction.
From a technical perspective, this vulnerability exploits the atomic nature of multi-document transactions within SiYuan's data model. When multiple blocks from different documents are modified in a single operation, they share a common undo state context. The endpoint exposes internal structural metadata by returning these shared root IDs. While the actual content or body text of the affected private documents is not directly exposed through this vector, the disclosure of internal identifiers and cross-document relationships provides an attacker with valuable intelligence about the application's data structure. This information can be used to map out the organization's document hierarchy, identify sensitive areas within the knowledge base, and potentially facilitate further attacks such as targeted privilege escalation or more precise injection attempts if other vulnerabilities exist in related endpoints that accept these root IDs.
The operational impact of this vulnerability is primarily centered on confidentiality and reconnaissance capabilities for authenticated adversaries. Although it does not result in immediate data exfiltration of sensitive text content, the leakage of internal identifiers undermines the integrity of access control mechanisms by revealing the existence and structural linkage of restricted resources. This can aid an attacker in crafting more sophisticated social engineering attacks or identifying high-value targets within the system based on their position in the transaction graph. The severity is elevated because it affects a core functionality used for undo operations, meaning that any authenticated user with minimal privileges can trigger this behavior repeatedly to build a comprehensive map of hidden documents and their relationships without triggering typical anomaly detection systems focused on content access violations.
To mitigate this vulnerability, organizations running SiYuan should immediately upgrade to version 3.8.2 or later where the issue has been resolved by implementing proper visibility checks before returning mutated root IDs. For environments where immediate patching is not feasible, network-level controls can be employed to restrict access to the /api/transactions/undoState endpoint exclusively to users with editor or admin privileges if reader access to undo states is not strictly required for basic functionality. Additionally, monitoring logs for unusual patterns of requests containing multiple root IDs may help in detecting exploitation attempts during a window of exposure. This vulnerability aligns with CWE-209 which describes the generation of an error message that includes sensitive information useful for an attacker, and it maps to ATT&CK technique T1087.004 regarding Account Discovery via Local System Information, as it allows enumeration of internal account or document structures through system metadata leakage.