CVE-2026-72801 Overview
CVE-2026-72801 affects SiYuan, a self-hosted personal knowledge management application, in versions before v3.7.4. The vulnerability exposes encrypted-notebook key derivation material and wrapped data keys through unauthenticated endpoints when the application runs in publish mode. Attackers can retrieve Argon2id salt values, cost parameters, password verifiers, and wrapped notebook keys without authentication. Once obtained, this material enables unlimited offline brute-force attacks against the master password. The exposed endpoints enforce no rate limiting, so adversaries can iterate password guesses at hardware-native speeds. The flaw is classified under [CWE-522: Insufficiently Protected Credentials].
Critical Impact
Unauthenticated remote attackers can extract cryptographic material sufficient to conduct offline master-password cracking against SiYuan encrypted notebooks, leading to full disclosure of protected note contents.
Affected Products
- SiYuan versions prior to v3.7.4 running in publish mode
- SiYuan self-hosted deployments exposing publish endpoints to untrusted networks
- SiYuan encrypted-notebook feature relying on Argon2id password-derived keys
Discovery Timeline
- 2026-08-12 - CVE-2026-72801 published to NVD
- 2026-08-12 - Last updated in NVD database
Technical Details for CVE-2026-72801
Vulnerability Analysis
SiYuan protects notebooks using a password-derived key wrapping scheme. The master password is stretched through Argon2id using a per-notebook salt and configured cost parameters. The resulting key encrypts a randomly generated data encryption key, producing a wrapped key stored alongside the notebook metadata. A password verifier is also stored so the client can confirm password correctness before attempting decryption.
In publish mode, SiYuan exposes endpoints intended to serve published notebook content to unauthenticated readers. These endpoints incorrectly return the Argon2id salt, the cost parameters (memory, iterations, parallelism), the password verifier, and the wrapped notebook key. All required inputs for offline key recovery are therefore reachable without credentials.
Root Cause
The root cause is exposure of sensitive cryptographic material through endpoints that lack authorization checks. Key-derivation parameters and wrapped keys must be treated as secret-adjacent material because they enable offline brute-force against the master password. SiYuan's publish mode returns these values in responses that were designed to serve public content, conflating notebook metadata with confidential key material [CWE-522].
Attack Vector
An attacker locates a SiYuan instance running in publish mode over the network. The attacker issues unauthenticated HTTP requests to the affected publish endpoints and parses the response to extract the Argon2id salt, cost parameters, password verifier, and wrapped data key. The attacker then performs an offline dictionary or brute-force attack, iterating candidate passwords through Argon2id with the captured parameters and comparing against the verifier. No requests to the target are required during cracking, so rate limiting and monitoring on the SiYuan host cannot detect the attack. Once the master password is recovered, the attacker unwraps the data key and decrypts notebook contents.
See the GitHub Security Advisory and the VulnCheck Advisory on Siyuan for additional technical detail.
Detection Methods for CVE-2026-72801
Indicators of Compromise
- Unauthenticated HTTP requests to SiYuan publish-mode endpoints returning JSON fields containing salt, Argon2id cost parameters, verifier, or wrapped-key blobs.
- Outbound access logs showing bulk retrieval of publish-mode metadata from a single source IP over a short interval.
- Access from anonymizing infrastructure (Tor exit nodes, commercial VPN ranges) to SiYuan publish endpoints not previously seen in baseline traffic.
Detection Strategies
- Inspect SiYuan access logs for requests to publish-mode routes that return notebook key material and alert on any occurrence from untrusted networks.
- Deploy a reverse-proxy or web application firewall rule that flags responses containing Argon2id parameter fields served without an authenticated session.
- Correlate repeated small requests to publish endpoints followed by extended silence, which is consistent with material harvesting for offline cracking.
Monitoring Recommendations
- Continuously monitor network egress from SiYuan hosts and ingress to publish endpoints, retaining full request and response metadata.
- Track version inventory of SiYuan instances and alert on any host still running a version earlier than v3.7.4.
- Baseline expected publish-mode consumers and alert on new client IPs or user agents accessing publish routes.
How to Mitigate CVE-2026-72801
Immediate Actions Required
- Upgrade all SiYuan instances to v3.7.4 or later, which removes key material from publish-mode responses.
- Disable publish mode on any SiYuan instance that does not require it until the upgrade is completed.
- Rotate the master password on every encrypted notebook that was reachable through publish mode while running a vulnerable version.
- Restrict network access to SiYuan publish endpoints using firewall rules or reverse-proxy allow-lists during the remediation window.
Patch Information
The vendor addressed the vulnerability in SiYuan v3.7.4. The fix removes exposure of Argon2id salt, cost parameters, password verifier, and wrapped notebook keys from unauthenticated publish-mode endpoints. Refer to the GitHub Security Advisory GHSA-8x84-r2ff-h8pq for release details and upgrade guidance.
Workarounds
- Place SiYuan behind an authenticating reverse proxy that requires credentials before reaching any publish-mode route.
- Bind SiYuan to a loopback interface or private network segment and expose published content only through a hardened front-end that strips key material fields.
- Use a strong, high-entropy master password (long random passphrase) so that captured key material remains computationally infeasible to crack even if exposure occurred.
# Configuration example: restrict SiYuan publish endpoints with an nginx reverse proxy
server {
listen 443 ssl;
server_name notes.example.com;
# Require authentication for all publish routes
location /publish/ {
auth_basic "SiYuan Publish";
auth_basic_user_file /etc/nginx/.htpasswd;
proxy_pass http://127.0.0.1:6806;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
# Block access from all other networks
location / {
allow 10.0.0.0/8;
deny all;
proxy_pass http://127.0.0.1:6806;
}
}
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

