CVE-2026-62204 Overview
CVE-2026-62204 is an insufficient verification of data authenticity flaw [CWE-345] in SiYuan, an open-source personal knowledge management application. Versions before v3.7.4 fail to validate that the packageName parameter matches the downloaded package content when handling bazaar install endpoints. An attacker with same-origin access can supply mismatched packageName and repoURL parameters to overwrite trusted plugins already installed by the user. The overwritten plugin persists across application restarts, giving the attacker a durable foothold within the SiYuan environment.
Critical Impact
Attackers can silently replace trusted SiYuan plugins with attacker-controlled code and achieve persistence across restarts.
Affected Products
- SiYuan versions before v3.7.4
- SiYuan bazaar plugin install endpoints
- SiYuan desktop and self-hosted deployments exposing the local API
Discovery Timeline
- 2026-08-22 - CVE-2026-62204 published to the National Vulnerability Database (NVD)
- 2026-08-26 - Last updated in NVD database
Technical Details for CVE-2026-62204
Vulnerability Analysis
SiYuan exposes a local HTTP API that includes bazaar install endpoints for plugins, themes, and widgets. These endpoints accept a packageName identifier alongside a repoURL pointing to the download source. The server writes the retrieved package to a location on disk keyed by the supplied packageName value.
The install handler does not verify that the archive fetched from repoURL corresponds to the declared packageName. An attacker able to reach the API within the same origin can request installation of an attacker-controlled repository while claiming the identity of an already-trusted plugin. The trusted plugin directory is overwritten with attacker code, which SiYuan will subsequently load on every restart.
The flaw affects integrity strongly while confidentiality and availability impact remain lower, consistent with a plugin-substitution primitive rather than direct data theft.
Root Cause
The root cause is missing authenticity validation between metadata and payload [CWE-345]. The bazaar handler trusts the client-supplied packageName as the write destination without cross-checking the manifest, signature, or repository identity contained inside the downloaded archive. No integrity binding exists between the declared identifier and the fetched content.
Attack Vector
Exploitation requires same-origin access to the SiYuan API, meaning the attacker must already reach the local interface, typically through a malicious page interacting with the local service, a compromised extension, or a user-initiated action that submits crafted parameters. The attacker sends an install request with a packageName matching an existing trusted plugin and a repoURL pointing to attacker-controlled content. On the next application launch, SiYuan loads the substituted plugin. No verified proof-of-concept code is published; refer to the GitHub Security Advisory and the VulnCheck Security Advisory for additional detail.
Detection Methods for CVE-2026-62204
Indicators of Compromise
- Unexpected modification timestamps on files under the SiYuan plugin, theme, or widget directories following user activity in a browser or embedded webview.
- Outbound HTTP requests from the SiYuan process to repository URLs that do not match the plugin identifier being installed.
- New or altered plugin.json manifests where the declared name does not match the surrounding directory.
Detection Strategies
- Monitor local HTTP calls to SiYuan bazaar install endpoints and flag requests where the packageName parameter references an already-installed plugin.
- Compare installed plugin file hashes against the official bazaar release hashes on a scheduled basis.
- Alert on file writes to trusted plugin directories that originate from install operations initiated outside the SiYuan UI.
Monitoring Recommendations
- Collect endpoint file integrity telemetry for the SiYuan data directory and forward it to a centralized analytics pipeline.
- Log all requests to the SiYuan local API, including source origin, packageName, and repoURL values, for retrospective review.
- Track SiYuan process child executions and script loads after restart events to identify unexpected plugin code paths.
How to Mitigate CVE-2026-62204
Immediate Actions Required
- Upgrade SiYuan to v3.7.4 or later on all workstations and self-hosted instances.
- Audit installed plugins, themes, and widgets and reinstall any component whose provenance cannot be confirmed.
- Restrict network exposure of the SiYuan local API so that only the loopback interface can reach it.
Patch Information
The maintainers addressed the issue in SiYuan v3.7.4 by validating that the packageName supplied to bazaar install endpoints matches the identity of the downloaded package. Details are available in the GitHub Security Advisory GHSA-rpx2-p6hp-x5gj.
Workarounds
- Avoid interacting with untrusted web content while SiYuan is running to reduce same-origin exposure of the local API.
- Disable or remove non-essential plugins to shrink the set of trusted identifiers an attacker could target for overwrite.
- Run SiYuan under a dedicated user account with limited filesystem privileges to constrain the impact of an overwritten plugin.
# Verify installed SiYuan version and inspect plugin directory integrity
siyuan --version
find ~/.config/siyuan/data/plugins -type f -name 'plugin.json' -exec grep -H '"name"' {} \;
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

