GitHub Advisoryadvisory · Go
GHSA-8fx8-pffw-w498 SiYuan has an arbitrary file deletion vulnerability
HIGH
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