CVE-2026-85175: SiYuan incomplete blocklist in path guard allows TLS private key disclosure

CVE-2026-85175 · Severity: high · CVSS 8.8 · Published 2026-09-03

SiYuan is a note-taking and knowledge management application that supports encrypted HTTPS connections. Versions up to 3.8.1 have an incomplete security filter that fails to block access to TLS private keys stored on the server. An authenticated user (or any user on instances without authentication) can download these keys via the file retrieval API, enabling them to decrypt captured network traffic or forge trusted certificates.

Technologies: github.com/siyuan-note/siyuan/kernel (Go), SiYuan. Vendors: Go, SiYuan.

Quick answers

Is CVE-2026-85175 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-85175 being exploited in the wild.
How severe is CVE-2026-85175?
High severity, with a CVSS score of 8.8, published 3 September 2026.
Which products and versions are affected?
github.com/siyuan-note/siyuan/kernel (Go) SEMVER:introduced=0,fixed=0.0.0-20260819144130-256d73aa7f94; SiYuan versions <= 3.8.1 (fixed in 3.8.2).
Is there a fix for CVE-2026-85175?
Yes. github.com/siyuan-note/siyuan/kernel (Go): upgrade to 0.0.0-20260819144130-256d73aa7f94 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-85175 attacked?
It is attacked over the network, in a web application.
Am I affected by CVE-2026-85175?
Check whether you run github.com/siyuan-note/siyuan/kernel (Go) or SiYuan at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/siyuan-note/siyuan/kernel (Go): upgrade to 0.0.0-20260819144130-256d73aa7f94 or later
    go get github.com/siyuan-note/siyuan/kernel@v0.0.0-20260819144130-256d73aa7f94

Technical details

The vulnerability is an incomplete blocklist in the IsForbiddenAbsPath() function (kernel/util/path_guard.go) that only blocks conf/conf.json by exact match but fails to restrict conf/key.pem (TLS private key), conf/ca.key (CA private key), conf/cert.pem, and conf/ca.crt. The getFile handler (kernel/api/file.go:497) bypasses the blocklist for users with RoleAdministrator, and in v3.8.1 all authenticated API users are assigned this role. On default no-auth-code instances, this permits unauthenticated access. An attacker can retrieve these keys via POST /api/file/getFile, enabling decryption of HTTPS traffic (key.pem) or certificate forgery (ca.key). The fix is available in v3.8.2, which adds the missing files to the blocklist.

Affected products

  • SiYuan SiYuan versions <= 3.8.1 (fixed in 3.8.2)

Identifiers

  • CVE-2026-85175
  • GHSA-4wwp-f6gw-6qm5
  • GO-2026-6663

Timeline

  • 2026-09-03: disclosed
  • 2026: patched: v3.8.2

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.