Listen to this Post
CVE-2026-72810 is a missing-authorization vulnerability (CWE-862) in SiYuan Note that allows unauthenticated attackers to establish a WebSocket connection to the publish surface and passively receive real-time content events — including password-protected and otherwise forbidden documents — without any credentials.
WebSocket sessions established through the publish surface (port 6808, RoleReader anonymous when Publish.Auth.Enable is false) are added to the same broadcast session pool as authenticated sessions. The kernel’s broadcast functions push content events transactions carrying block DOM, document save/create, move/rename to every session in the pool with no role or publish-access filtering. As a result, an anonymous reader who holds a WebSocket connection open passively receives a real-time feed of every edit made in the workspace, including edits to password-protected, publish-forbidden, and unpublished documents.
The `HandleConnect` function admits the injected RoleReader publish token, and the session is registered via `AddPushChan` into the same sessions pool used for authenticated clients. The broadcast functions (Broadcast, broadcastOthers, broadcastOtherAppMains, …) write to every session in the pool with no role or publish-access check. The `isPublish` flag on a session is consulted only to send the “service closed” notice — it is never used to gate content. Content events are pushed via `PushModeBroadcast` → Broadcast(), so transactions (with rendered block DOM), savedoc/create, and `moveDoc/rename` events reach the publish reader’s socket unfiltered.
Because this is a push channel, the events originate from the kernel’s own edit pipeline and are broadcast directly to open sockets. They never traverse an HTTP handler, so the publish-access filters that gate the HTTP content endpoints are not in the path at all. The WebSocket route (/ws) is CheckAuth-only, which the publish RoleReader token satisfies. The issue affects all SiYuan versions prior to 3.7.4.
DailyCVE Form:
Platform: SiYuan Note
Version: < v3.7.4
Vulnerability: Missing Authorization (CWE-862)
Severity: Critical (CVSS 8.6–9.2)
date: 2026-08-14
Prediction: 2026-09-15
What Undercode Say:
Analytics:
- Attack Vector: Network-based, unauthenticated
- Prerequisites: Publish mode enabled on port 6808, Publish Basic Auth disabled
- Exposure: Publish surface typically exposed to public internet
- EPSS: 0.64% (48th percentile)
- CWE: CWE-862 (Missing Authorization)
Bash commands and codes:
Check if SiYuan publish surface is exposed nmap -p 6808 <target_ip> Establish WebSocket connection (anonymous) wss://<target_ip>:6808/ws Monitor real-time edits passively No authentication token or password required
Exploit: (Educational Purposes!)
- Identify a SiYuan instance with publish mode enabled on port 6808
- Confirm Publish.Auth.Enable is false (default in many configurations)
3. Open an unauthenticated WebSocket connection to `wss://:6808/ws`
- Hold the connection open while an administrator edits documents in the workspace
5. Receive real-time, unfiltered content events including:
– `updateAttrs` with block attributes (including password-protected document rootIDs)
– Document s of newly created documents
– `create` events with notebook names and document paths
6. No HTTP request is made beyond the WebSocket upgrade; content arrives over the push channel
Protection:
- Upgrade SiYuan to version 3.7.4 or later
- Enable Publish Basic Auth (
Publish.Auth.Enable = true) - Filter broadcasts by session: for any session flagged
isPublish, apply publish-access/publish-ignore/publish-password checks before pushing content events - Alternatively, exclude publish sessions from content broadcasts entirely and deliver only events a publish viewer is authorized to see
- Restrict network access to port 6808 using firewall rules
- Monitor for unexpected WebSocket connections to the publish surface
Impact:
An anonymous reader (publish mode with auth disabled) or any publish RoleReader who merely holds a WebSocket connection open receives a live feed of every edit an administrator makes: block DOM, attributes, s, notebook names, and document structure, including for password-protected, publish-forbidden, and unpublished documents. This defeats the publish-access and publish-password boundaries entirely for any content edited while the socket is open. The precondition is trivial: an administrator active in the workspace while the anonymous socket is connected. Confidentiality-only (passive disclosure); the channel is receive-only for the reader. Encrypted-notebook content follows the same broadcast path if edited while unlocked.
🎯Let’s Practice Exploiting & Learn Patching For Free:
🎓 Live Courses & Certifications:
Join Undercode Academy for Verified Certifications
🚀 Request a Custom Project:
Secure, high-velocity infrastructure and disruptive technological engineering. Contact our engineering team for high-tier development and proprietary systems:
[email protected]
💎 Smart Architecture | 🛡️ Secure by Design | ⭐ Trusted by Thousands
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

