Summary
CVE-2026-73054 is an authentication bypass affecting SiYuan Note prior to version 3.7.4. The flaw lets an unauthenticated remote attacker reach the kernel’s WebSocket broadcast event stream even when an access auth code is configured, exposing document identifiers, titles, notebook names, and file paths. The issue is tracked as CWE-287 (Improper Authentication) with a severity of 8.7 (High).
Technical details
- Root cause: a parser differential between two independent security checks on the WebSocket request — the authentication-exemption check uses
strings.Contains()on the raw request URI, while the session quarantine check usesQuery().Get(), which only returns the first value when a query parameter is duplicated. - Trigger condition: an attacker crafts a WebSocket URI containing duplicated query parameters (e.g., an
idparameter supplied twice) so the exemption check and the quarantine check evaluate the request differently. - Attack vector: network, no authentication or user interaction required (AV:N/AC:L/PR:N/UI:N).
- Impact: the attacker gains unauthenticated access to the kernel’s live broadcast event pool, receiving document IDs, titles, notebook names, file paths, ordered file structure, and operation events. Document body content was not observed in captured frames; confidentiality impact is high while integrity and availability are unaffected.
Affected software
- SiYuan (siyuan-note/siyuan), golang package
github.com/siyuan-note/siyuan/kernel - All versions prior to v3.7.4, including development branch builds up to commit 401d2928c and master branch up to commit eef105683 (v3.7.3)
- Fixed in v3.7.4 and later
Severity
- CVSS v3.1 Base Score: 7.5 (High) — Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS v4.0 Base Score: 8.7 (High) — Vector:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade SiYuan to v3.7.4 or later, where the query-parameter parsing inconsistency between the authentication exemption and quarantine checks has been resolved.
- If patching is not immediately possible: restrict network exposure of the SiYuan kernel WebSocket endpoint (e.g., bind to localhost or place behind a network-level access control/firewall), ensure an access auth code is configured, and monitor kernel logs for WebSocket connection attempts using duplicated query parameters.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Page title:
Access Authorization - SiYuan,思源笔记 - Raw response body:
exitSiYuan,b3log.org/siyuan

