Description
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).
Published: 2026-09-03
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: Private Key Exposure
Action: Immediate Patch
AI Analysis

Impact

SiYuan versions 3.8.1 and earlier contain an incomplete blocklist in the IsForbiddenAbsPath function that does not protect the TLS private key (conf/key.pem) or CA private key (conf/ca.key). The getFile API bypasses this blocklist for all authenticated users who receive the RoleAdministrator role by default, and any client can reach the API on a default no‑auth instance. This allows an attacker to retrieve the private keys via a POST request to /api/file/getFile. With access to key.pem the attacker can decrypt captured HTTPS traffic, and with ca.key the attacker can forge certificates trusted by clients that have imported SiYuan's CA, potentially enabling man‑in‑the‑middle attacks and other certificate‑based threats.

Affected Systems

SiYuan by siyuan‑note, versions 3.8.1 and older are affected. The vulnerability is fixed starting in version 3.8.2.

Risk and Exploitability

The CVSS score of 8.7 indicates a high‑severity flaw. The EPSS score is not available and the vulnerability is not listed in CISA KEV. The likely attack vector is a network‑based API call; any authenticated user can exploit the flaw, and unauthenticated clients on deployment with the default no‑auth configuration can also retrieve the secret files. The exploitation requires no special conditions beyond the standard API access and yields the attacker the TLS private key, enabling a range of post‑exfiltration attacks such as decrypting traffic or forging client‑trusted certificates.

Generated by OpenCVE AI on September 3, 2026 at 12:37 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Patch SiYuan to version 3.8.2 or later to eliminate the file access flaw.
  • Revoke the exposed TLS and CA keys, regenerate new certificates, and reinstall them to ensure no compromised keys remain in use.
  • Limit the RoleAdministrator privilege to trusted accounts only and enforce strict authentication before granting API access.

Generated by OpenCVE AI on September 3, 2026 at 12:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 16:15:00 +0000

Type Values Removed Values Added
First Time appeared Siyuan
Siyuan siyuan
Vendors & Products Siyuan
Siyuan siyuan

Thu, 03 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Thu, 03 Sep 2026 11:30:00 +0000

Type Values Removed Values Added
Description 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).
Title SiYuan before v3.8.2 TLS Private Key Disclosure via getFile
First Time appeared B3log
B3log siyuan
Weaknesses CWE-552
CPEs cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:*
Vendors & Products B3log
B3log siyuan
References
Metrics cvssV3_1

{'score': 8.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 8.7, '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'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-09-03T12:12:14.206Z

Reserved: 2026-09-03T11:08:17.526Z

Link: CVE-2026-85175

cve-icon Vulnrichment

Updated: 2026-09-03T12:11:51.634Z

cve-icon NVD

Status : Deferred

Published: 2026-09-03T13:06:25.270

Modified: 2026-09-08T20:18:59.270

Link: CVE-2026-85175

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T16:00:07Z

Weaknesses
  • CWE-552

    Files or Directories Accessible to External Parties