fix: prevent path traversal in plugin upload filenames (#8968)

This commit is contained in:
VectorPeak
2026-06-24 15:55:53 +08:00
committed by GitHub
parent 5266d170a3
commit 3c7956e8c8

View File

@@ -872,9 +872,10 @@ class PluginService:
) -> tuple[dict, str]:
self._ensure_not_demo()
logger.info(f"正在安装用户上传的插件 {upload_file.filename}")
filename = str(upload_file.filename or "plugin.zip").replace("\\", "/")
file_path = os.path.join(
get_astrbot_temp_path(),
f"plugin_upload_{upload_file.filename}",
f"plugin_upload_{os.path.basename(filename) or 'plugin.zip'}",
)
await upload_file.save(file_path)
try: