CVE-2026-93921 in SiYuan
Summary
by MITRE • 09/19/2026
SiYuan versions through 3.8.4 fail to enforce publish access control in the getDynamicIcon endpoint, allowing read-only token holders to access document metadata. Attackers can call the endpoint with type=8 and crafted content to read block titles, names, aliases, and hierarchical paths of restricted documents via template injection.
Be aware that VulDB is the high quality source for vulnerability data.
Analysis
by VulDB Data Team • 09/19/2026
The vulnerability identified in SiYuan versions through 3.8.4 represents a critical failure in access control mechanisms within the application's document management system. Specifically, the getDynamicIcon endpoint lacks proper enforcement of publish-based permissions, which is intended to restrict access to content based on whether a user holds read-only tokens or full administrative privileges. This flaw allows attackers who possess only read-only authentication credentials to bypass expected security boundaries and retrieve sensitive metadata from documents that should be restricted. The core issue lies in the server-side logic associated with this endpoint, which fails to validate the scope of access rights before processing requests for dynamic icon data related to specific document blocks.
From a technical perspective, the exploitation vector involves manipulating the type parameter within HTTP requests sent to the getDynamicIcon endpoint. By setting the type value to 8 and supplying crafted content in the request body or parameters, an attacker can trigger template injection vulnerabilities inherent in how the application processes these inputs. This manipulation allows the retrieval of block titles, names, aliases, and hierarchical paths for documents that are otherwise protected by publish access controls. The ability to extract this metadata is significant because it reveals the structural organization and naming conventions of private or restricted content without requiring full document read permissions.
The operational impact of this vulnerability extends beyond simple data leakage. By exposing block titles, names, aliases, and hierarchical paths, attackers can map out the internal structure of a user's knowledge base or project repository. This information facilitates further reconnaissance efforts, allowing adversaries to identify high-value targets within the system for subsequent attacks such as targeted phishing, social engineering, or more direct exploitation attempts against other endpoints that might have weaker security postures. The exposure of hierarchical paths also aids in understanding how data is organized, which can be crucial for developing automated tools to scrape large volumes of restricted information efficiently.
This vulnerability aligns with Common Weakness Enumeration (CWE) category CWE-284, which describes Improper Access Control, as the application fails to restrict access to resources based on user privileges. Additionally, it relates to CWE-918, Server-Side Request Forgery if the template injection allows for out-of-band interactions, though primarily it is an authorization bypass issue. In terms of the MITRE ATT&CK framework, this behavior corresponds to T1005, Data from Local System Retrieval, where attackers gather information directly from compromised systems or applications without executing code on them. It also touches upon T1608, Install Resilient Common Tools, if the attacker uses standard web request methods to exfiltrate data through legitimate-looking API calls that are not properly monitored by intrusion detection systems.
Mitigation strategies must focus on enforcing strict authorization checks at the endpoint level before any processing of dynamic icon requests occurs. Developers should ensure that all access control middleware validates user permissions against the specific resource being requested, regardless of the type parameter value. Implementing principle of least privilege ensures that read-only tokens cannot trigger actions or retrieve data associated with administrative or private document structures. Furthermore, input validation and sanitization techniques should be applied to prevent template injection vulnerabilities from being exploited even if access control is bypassed. Regular security audits and penetration testing focusing on API endpoints are essential to identify similar gaps in other parts of the application logic where publish controls might not be correctly enforced.