CVE-2026-72809: SiYuan: Localhost-trust admin bypass on auth-code-gated endpoints, with potential remote reachability via the fixed-port proxy
The kernel’s CheckAuth grants RoleAdministrator to any request whose RemoteAddr is loopback (127.0.0.1), for a specific set of endpoints, and these localhost bypasses sit outside the accessAuthCode gate so they apply even when an access auth code is configured. This is demonstrated live (Part A below).
Separately, the fixed-port reverse proxy (fixedport.go) forwards requests to the kernel over loopback and injects no authentication token, and no SetTrustedProxies is configured, so gin does not derive the client address from forwarding headers. By code inspection, a request forwarded through this proxy would reach the kernel with RemoteAddr = 127.0.0.1. If the fixed-port proxy is bound to a network interface (via NetworkServe) and forwards remote requests to the kernel this way, the localhost bypass would grant a remote unauthenticated caller admin on those endpoints. This second step is established by reading the code but was not reproduced end-to-end, and I’m asking the maintainer to confirm the proxy’s runtime forwarding behavior (Part B below).
References
- github.com/advisories/GHSA-3mp7-4rh5-jrv9
- github.com/siyuan-note/siyuan/commit/9c16e9851f0b5d7ed179e5c2fca15a7724666871
- github.com/siyuan-note/siyuan/security/advisories/GHSA-3mp7-4rh5-jrv9
- nvd.nist.gov/vuln/detail/CVE-2026-72809
- www.vulncheck.com/advisories/siyuan-before-authentication-bypass-via-localhost-trust
Code Behaviors & Features
Detect and mitigate CVE-2026-72809 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →