CVE Catalog

CVE-2026-100646

HighCVSS 8.1
Published: Updated: Translated: NVD NIST

Summary

SiYuan versions up to and including 3.8.3 have authentication guards (CheckAuth in kernel/model/session.go and IsSessionOriginAllowed in kernel/util/net.go) that fail open when the HTTP Origin header is absent. Browsers omit Origin on cross-site top-level GET navigations and no-cors GET subresource loads, and the session cookie is SameSite=Lax, so a single cross-site GET from an attacker-controlled page is granted RoleAdministrator. Combined with content-type sniffing on /api/network/proxy, this allows an unauthenticated remote attacker to execute arbitrary script in the SiYuan origin, invoke administrator APIs, and exfiltrate the persistent kernel API token.

Risk Assessment

An attacker can gain administrative control over a SiYuan instance, execute arbitrary script in the victim's browser context, and steal the API token. This affects both default installations and password-protected instances with an active session.

Recommendation

Upgrade SiYuan to version 3.8.4. Verify that versions ≤ 3.8.3 are not in use and consider restricting network access to the interface.

Other vulnerabilities in SiYuan

See all
Original NVD description (English source)

SiYuan is a self-hosted personal knowledge management system. In versions up to and including 3.8.3, the kernel's authentication guards (CheckAuth in kernel/model/session.go and IsSessionOriginAllowed in kernel/util/net.go) fail open when the HTTP Origin header is absent, on the incorrect assumption that any browser-initiated cross-site request carries an Origin. Because browsers omit Origin on cross-site top-level GET navigations and no-cors GET subresource loads — and the session cookie is SameSite=Lax — a single cross-site GET issued from any attacker-controlled web page is granted RoleAdministrator, both on default installations with no access-authorization code and on password-protected instances with a live session. Combined with content-type sniffing on the /api/network/proxy endpoint, which allows attacker-controlled HTML to be served under SiYuan's own origin, this permits an unauthenticated remote attacker to execute arbitrary script in the SiYuan origin (http://127.0.0.1:6806), invoke administrator APIs, and exfiltrate the persistent kernel API token. This issue is fixed in version 3.8.4.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS