Safeguard
Vulnerability Analysis•

CVE-2026-85175: High TLS Key Exposure in SiYuan

CVE-2026-85175 lets any authenticated SiYuan user read TLS and CA private keys through getFile. Upgrade to 3.8.2 and consider the keys exposed.

Safeguard Security Team
3 min read

CVE-2026-85175 is a high severity flaw in SiYuan versions up to 3.8.1. An incomplete blocklist lets any authenticated user read the TLS private key and the CA private key through the getFile API. It is fixed in 3.8.2, so upgrade and treat the old keys as exposed.

What's affected

  • Product: SiYuan, kernel path guard in kernel/util/path_guard.go.
  • Affected: version 3.8.1 and earlier.
  • Fixed: 3.8.2.
  • Detail from the advisory: in 3.8.1 every authenticated user receives the administrator role, and the blocklist is skipped for that role. The advisory also says a default instance without an access auth code needs no token.

Severity in the record: High, CVSS 8.8 (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H). The GitHub advisory rates it High. VulnCheck scores it 8.7 under CVSS v4, against 8.8 under v3.1 in the record.

Weakness class: CWE-552 (Files or Directories Accessible to External Parties).

How to check if you're exposed

  1. Open SiYuan's about screen or check the release you installed. Anything at 3.8.1 or below is affected.
  2. For Docker, read the image tag with docker ps.
  3. Ask whether the SiYuan server port is reachable from anything other than your own machine. A desktop install that listens only locally is a smaller exposure than a shared server.
  4. Check whether an access auth code is set. The advisory says an instance without one needs no token for the API call.

What to do now

  1. Upgrade to SiYuan 3.8.2 or later.
  2. Set an access auth code on every instance that listens on a network.
  3. If the instance was reachable by anyone you do not trust, regenerate the TLS key pair and the CA key. The advisory does not prescribe this, but a key that could be read should be replaced.
  4. If clients imported the SiYuan CA certificate, remove the old one from them after you rotate.
  5. Keep the server off the public internet unless you front it with a reverse proxy and authentication.

Why it matters

A blocklist is a list of things you remembered to forbid. The path guard blocked the main configuration file by exact name but not the key files that sit in the same folder. That is CWE-552, files or directories reachable by people who should not have them. The advisory notes this is the same class of bug as two earlier SiYuan reports.

The impact depends on how you run it. With TLS on, the TLS key lets someone decrypt traffic they captured. The CA key lets them sign certificates that any client trusting the SiYuan CA would accept. The files are created at start up whether or not TLS is active. An allowlist of readable folders is safer than a list of forbidden files. The record does not claim exploitation in the wild.

Quick check

Is a local only SiYuan install at risk?

Less so, because an attacker needs to reach the API. Upgrade anyway, and set an access auth code if the port is reachable from other machines.

Sources

Last reviewed: 18 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.