---
id: CVE-2026-82651
title: >-
  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
summary: >-
  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 …
severity: medium
cvss: 4.9
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-200
published: '2026-08-30'
updated: '2026-08-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-82651'
references:
  - url: >-
      https://github.com/siyuan-note/siyuan/security/advisories/GHSA-3cm4-ccvw-6xr6
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/siyuan-before-3.8.1-missing-authorization-via-history-and-repo-diff
    label: disclosure@vulncheck.com
tags:
  - nvd
ingestedAt: '2026-08-30T23:59:28.699Z'
epss: 0.00477
epssPercentile: 0.3862
---

## Overview

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/.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
