GitHub Advisoryadvisory · Go

GHSA-8fx8-pffw-w498 SiYuan has an arbitrary file deletion vulnerability

HIGH Published 2025-01-03 Modified 2025-01-03 Official page ↗
Aliases
CVE-2025-21609
Ecosystem
Go
Packages
github.com/siyuan-note/siyuan/kernel
Severity
High
CVSS vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weaknesses
CWE-459, CWE-552
Reviewed
2025-01-03

Affected packages

• Go github.com/siyuan-note/siyuan/kernel: < 0.0.0-20250103014808-d9887aeec1b2 (no fix yet)

Description

Summary A arbitrary file deletion vulnerability has been identified in the latest version of Siyuan Note. The vulnerability exists in the `POST /api/history/getDocHistoryContent` endpoint.An attacker can craft a payload to exploit this vulnerability, resulting in the deletion of arbitrary files on the server. Details The vulnerability can be reproduced by sending a crafted request to the `/api/history/getDocHistoryContent` endpoint. Sending a request to the `/api/history/getDocHistoryContent` like: ``` curl "http://127.0.0.1:6806/api/history/getDocHistoryContent" -X POST -H "Content-Type: application/json" -d '{"historyPath":""}' ``` Replace `` with the absolute file path of the target file you wish to delete. The `historyPath` parameter in the payload is processed by the `func getDocHistoryContent` in `api/history.go:133`. In turn, `historyPath` is passed to the `func GetDocHistoryContent` located in `model/history.go:150` , which is the slink of the vulnerability. if `historyPath` exists and does not satisfy the `filesys.ParseJSONWithoutFix`, then it will be deleted by `os.RemoveAll` ```go func GetDocHistoryContent(historyPath, keyword string, highlight bool) (id, rootID, content string, isLargeDoc bool, err error) { if !gulu.File.IsExist(historyPath) { logging.LogWarnf("doc history [%s] not exist", historyPath) return } data, err := filelock.ReadFile(historyPath) if err != nil { logging.LogErrorf("read file [%s] failed: %s", historyPath, err) return } isLargeDoc = 1024*1024*1 "}' ``` Impact arbitrary file deletion vulnerability

Related

Alias · CVE (1)

  • CVE-2025-21609 SiYuan is self-hosted, open source personal knowledge management software. vulnerability

Weakness · CWE (2)

  • CWE-459 Incomplete Cleanup weakness
  • CWE-552 Files or Directories Accessible to External Parties weakness

References