Impact
SiYuan, an open‑source personal knowledge management system, provides a publish‑mode Reader with eight API endpoints that are only checked for general authentication. The code mistakenly omits the required admin‑role or read‑only checks. As a result, any request carrying a JWT that passes the generic authentication gate – such as the anonymous publish‑service RoleReader or a RoleEditor on a workspace whose Editor.ReadOnly flag is set – can invoke these endpoints. Each endpoint performs server‑side state modifications, including atomic rewrites of the workspace configuration file (conf.json) via model.Conf.Save() and updates to the SQL index via the search API. The core weakness is a lack of proper authorization control, allowing unauthorized users to alter critical configuration data and potentially the database index, which may be used to change application behavior or subvert data integrity.
Affected Systems
Any installation of SiYuan running a version earlier than 3.7.0 is susceptible. The vulnerability affects the open‑source product provided by vendor siyuan-note under the product name SiYuan; both Linux and Windows builds use the same API set.
Risk and Exploitability
The CVSS score of 7.2 indicates a medium to high severity vulnerability. The EPSS score is currently unavailable, so the likelihood of exploitation cannot be quantified. The vulnerability is not listed in the CISA KEV catalog. Attackers can exploit the flaw remotely by sending crafted HTTP POST requests to the eight exposed endpoints, provided they hold a JWT that passes CheckAuth. Due to the role‑based nature of publish‑mode visitors, anonymous users are already granted a sufficient JWT to trigger these calls, making the attack path straightforward for unauthenticated contributors to the public workspace.
OpenCVE Enrichment
Github GHSA