Description
SiYuan before v3.8.1 does not apply the IsForbiddenAbsPath guard (introduced in GHSA-c8r8-95hg-mp34) to the /history/*path and /repo/diff/*path endpoints in kernel/server/serve.go. These routes require admin authentication but construct file paths independently, so an authenticated administrator can retrieve historical snapshots of sensitive files that the guard is meant to block, including data/.siyuan/publishAccess.json (plaintext publish-mode passwords) and files under data/templates/.
Published: 2026-08-30
Score: 6.9 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

SiYuan versions prior to 3.8.1 lack the IsForbiddenAbsPath guard on the /history/*path and /repo/diff/*path endpoints, which are intended to be restricted to administrators. This oversight allows an authenticated administrator to construct arbitrary file paths and retrieve historical snapshots of files that the guard should prevent access to. Attackers can thus obtain sensitive information such as plaintext publish-mode passwords stored in data/.siyuan/publishAccess.json and template files under data/templates/, jeopardizing confidentiality and potentially enabling further credential-based attacks.

Affected Systems

The vulnerability affects installations of Siyuan Note (siyuan-note:siyuan) on any version before 3.8.1. The impact applies to authenticated administrator accounts that can reach the /history and /repo/diff API paths and read local file system data as specified.

Risk and Exploitability

The CVSS score of 6.9 indicates a moderate severity vulnerability. No EPSS data is available, and the issue is not listed in CISA KEV. An attacker must first obtain administrative credentials to trigger the flaw; once authenticated, the exploit path is straightforward by sending requests to the vulnerable endpoints with crafted path parameters. Successful exploitation results in unauthorized reading of sensitive configuration and template files, exposing credentials and internal data structures.

Generated by OpenCVE AI on August 30, 2026 at 15:23 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Siyuan to version 3.8.1 or later to restore the missing guard
  • If upgrading is not immediately possible, restrict or disable the /history and /repo/diff endpoints for non-essential administrators and enforce stricter access controls
  • Remove any plaintext passwords from data/.siyuan/publishAccess.json and audit template files to prevent future exposure

Generated by OpenCVE AI on August 30, 2026 at 15:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 30 Aug 2026 14:45:00 +0000

Type Values Removed Values Added
Description SiYuan before v3.8.1 does not apply the IsForbiddenAbsPath guard (introduced in GHSA-c8r8-95hg-mp34) to the /history/*path and /repo/diff/*path endpoints in kernel/server/serve.go. These routes require admin authentication but construct file paths independently, so an authenticated administrator can retrieve historical snapshots of sensitive files that the guard is meant to block, including data/.siyuan/publishAccess.json (plaintext publish-mode passwords) and files under data/templates/.
Title SiYuan before v3.8.1 Missing Authorization via /history and /repo/diff
First Time appeared B3log
B3log siyuan
Weaknesses CWE-200
CPEs cpe:2.3:a:b3log:siyuan:*:*:*:*:*:*:*:*
Vendors & Products B3log
B3log siyuan
References
Metrics cvssV3_1

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

cvssV4_0

{'score': 6.9, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-08-30T14:33:33.112Z

Reserved: 2026-08-30T13:38:00.102Z

Link: CVE-2026-82651

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-30T15:16:45.753

Modified: 2026-08-30T15:16:45.753

Link: CVE-2026-82651

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-30T15:30:18Z

Weaknesses
  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor