OCTOBER 9, 2026
Live Feed
Back to database
Case File

CVE-2026-100646

HIGH · CVSS 8.1 EPSS 0.19% Public Exploit

Source: NVD + CISA KEV + EPSS · Published 2026-09-26 · Last synced 2026-10-09

CyberRota Analysis

AI-Generated

The vulnerability affects SiYuan versions up to and including 3.8.3, allowing unauthenticated remote attackers to gain administrative privileges due to improper handling of the HTTP Origin header and session management. This flaw can lead to arbitrary script execution and API token exfiltration, posing a significant risk to the integrity of the system. Organizations using affected versions should prioritize upgrading to version 3.8.4 to mitigate this high-severity security risk.

Public Exploit Signal

A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.

GitHub PoC Links

Note: these links are listed for security research and verification purposes only.

CVE
CVE-2026-100646
Severity
HIGH
CVSS
8.1
EPSS
0.19%

Original NVD Description

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.