SiYuan — это система управления персональными знаниями. Версии до 3.5.4 содержат логическую уязвимость в конечной точке /api/file/globalCopyFiles. Эта функция позволяет прошедшим проверку подлинности пользователям копировать файлы из любого места файловой системы сервера в рабочую область приложения без надлежащей проверки пути.
Уязвимость существует в исходном коде api/file.go. Функция globalCopyFiles принимает список исходных путей (srcs) из тела запроса JSON. Хотя код проверяет, существует ли исходный файл с помощью filelock.IsExist(src), он не может проверить, находится ли исходный путь в авторизованном каталоге рабочей области.
Версия 3.5.4 исправляет проблему.
Показать оригинальное описание (EN)
SiYuan is a personal knowledge management system. Versions prior to 3.5.4 contain a logic vulnerability in the /api/file/globalCopyFiles endpoint. The function allows authenticated users to copy files from any location on the server's filesystem into the application's workspace without proper path validation. The vulnerability exists in the api/file.go source code. The function globalCopyFiles accepts a list of source paths (srcs) from the JSON request body. While the code checks if the source file exists using filelock.IsExist(src), it fails to validate whether the source path resides within the authorized workspace directory. Version 3.5.4 patches the issue.
Характеристики атаки
Последствия
Строка CVSS v4.0