diff --git a/setuptools/package_index.py b/setuptools/package_index.py index 1a6abebcda..e51d51de6d 100644 --- a/setuptools/package_index.py +++ b/setuptools/package_index.py @@ -822,6 +822,10 @@ def _download_url(self, url, tmpdir): filename = os.path.join(tmpdir, name) + # ensure path resolves within the tmpdir + if not filename.startswith(str(tmpdir)): + raise ValueError(f"Invalid filename {filename}") + return self._download_vcs(url, filename) or self._download_other(url, filename) @staticmethod