From 2fb5b95307d380f277057e8c08c55428c61880a4 Mon Sep 17 00:00:00 2001 From: Thomas Auzinger Date: Mon, 20 Jul 2026 16:26:18 +0200 Subject: [PATCH] Sanitize filename to mitigate path traversal risk If `chunk.file_name` is an absolute path (e.g., `/etc/passwd`), `os.path.join` discards the base path. --- src/ansys/api/speos/file/v1/file_transfer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ansys/api/speos/file/v1/file_transfer.py b/src/ansys/api/speos/file/v1/file_transfer.py index a9d27931..0f4e3466 100644 --- a/src/ansys/api/speos/file/v1/file_transfer.py +++ b/src/ansys/api/speos/file/v1/file_transfer.py @@ -164,7 +164,7 @@ def _chunks_to_file(chunks, download_location): file = None for chunk in chunks: if first_chunk and chunk.file_name != "": - file_path = os.path.join(download_location, chunk.file_name) + file_path = os.path.join(download_location, os.path.basename(chunk.file_name)) file = open(file_path, "wb") first_chunk = False