CVE-2026-85175 PUBLISHED

SiYuan before v3.8.2 TLS Private Key Disclosure via getFile

Assigner: VulnCheck
Reserved: 03.09.2026 Published: 03.09.2026 Updated: 03.09.2026

SiYuan versions <= 3.8.1 (fixed in v3.8.2) contain an incomplete blocklist in the IsForbiddenAbsPath() function (kernel/util/path_guard.go), which only blocks conf/conf.json by exact match and does not restrict the TLS private key (conf/key.pem) or CA private key (conf/ca.key) stored in the same conf/ directory. Because the getFile handler skips the blocklist for RoleAdministrator and all authenticated users receive RoleAdministrator in v3.8.1, any user (or any client on a default no-auth-code instance) can retrieve these private keys via POST /api/file/getFile. On deployments with TLS enabled, this allows decryption of captured HTTPS traffic (key.pem) and forging of certificates trusted by clients that imported SiYuan's CA (ca.key).

Metrics

CVSS Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
CVSS Score: 8.7

Product Status

Vendor siyuan-note
Product siyuan
Versions Default: unaffected
  • affected from 0 to 3.8.2 (excl.)
  • Version 3.8.2 is unaffected

Credits

  • GhostOverflow reporter

References

Problem Types

  • Files or Directories Accessible to External Parties CWE