CVE-2026-100646: SiYuan before v3.8.4 Authentication Bypass via Missing Origin Header

Published Sep 26, 2026
·
Updated

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.

Affected Software

1 affected component
SiYuan SiYuan<=3.8.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade SiYuan to a version that resolves this vulnerability.

    Fixed in 3.8.4

Event History

Sep 26, 2026
CVE Published
via MITRE·01:23 PM
Data Sourced
via MITRE·01:23 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·02:16 PM
DescriptionSeverityWeakness
May 29, 58707
Event
via NVD·06:12 PM

Frequently Asked Questions

1

Which deployments are exposed to this issue?

SiYuan versions up to and including 3.8.3 are affected. Both default installations with no access-authorization code and password-protected instances with a live user session are exposed.

2

What does an attacker need to exploit it?

An unauthenticated remote attacker needs to induce a victim to load an attacker-controlled web page that issues a cross-site GET request. The attack relies on requests without an Origin header, including cross-site top-level GET navigations and no-cors GET subresource loads.

3

Does password protection prevent exploitation?

No. Password-protected instances remain vulnerable when there is a live session, because the SameSite=Lax session cookie is sent in the relevant cross-site GET scenario.

4

What is the impact of successful exploitation?

An attacker can execute arbitrary script under the SiYuan origin, invoke administrator APIs, and exfiltrate the persistent kernel API token. The described attack targets the SiYuan origin at http://127.0.0.1:6806.

5

What remediation is available?

Upgrade SiYuan to version 3.8.4, which fixes the issue.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203