{"id":"CVE-2026-85175","title":"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/…","summary":"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/…","severity":"high","cvss":8.8,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","cwe":["CWE-552"],"published":"2026-09-03","updated":"2026-09-08","sourceUpdated":"2026-09-08T20:18:59.270","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-85175","references":[{"url":"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-4wwp-f6gw-6qm5","label":"disclosure@vulncheck.com"},{"url":"https://www.vulncheck.com/advisories/siyuan-before-3.8.2-tls-private-key-disclosure-via-getfile","label":"disclosure@vulncheck.com"},{"url":"https://github.com/siyuan-note/siyuan/security/advisories/GHSA-4wwp-f6gw-6qm5","label":"134c704f-9b21-4f2e-91b3-4a467353bcc0"},{"url":"https://github.com/siyuan-note/siyuan/commit/256d73aa7f94aead7ba255b668e32c140af23137"},{"url":"https://github.com/siyuan-note/siyuan"},{"url":"https://github.com/siyuan-note/siyuan/releases/tag/v3.8.2"}],"tags":["nvd","osv","go"],"epss":0.00325,"epssPercentile":0.25399,"ingestedAt":"2026-09-08T21:11:12.291Z","aliases":["GHSA-4wwp-f6gw-6qm5","GO-2026-6663"],"ecosystem":"go","vendor":"siyuan-note","product":"github.com/siyuan-note/siyuan/kernel","affected":["github.com/siyuan-note/siyuan/kernel < 0.0.0-20260819144130-256d73aa7f94"],"patched":["github.com/siyuan-note/siyuan/kernel 0.0.0-20260819144130-256d73aa7f94"],"slug":"CVE-2026-85175","body":"## Overview\n\nSiYuan 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).\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-85175)\n\nAffected packages:\n\n- `github.com/siyuan-note/siyuan/kernel < 0.0.0-20260819144130-256d73aa7f94`\n\nPatched in:\n\n- `github.com/siyuan-note/siyuan/kernel 0.0.0-20260819144130-256d73aa7f94`\n\nSource: https://osv.dev/vulnerability/GHSA-4wwp-f6gw-6qm5","depth":"twilight","depthScore":48,"depthScoreParts":{"impact":48.4,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}