26 known bugs in pip, with affected versions, fixes and workarounds. Sourced from upstream issue trackers.
| Severity | Affected | Fixed in | Title | Status | Source |
|---|
| high | any | 19.2 | Path Traversal in pip The pip package before 19.2 for Python allows Directory Traversal when a URL is given in an install command, because a Content-Disposition header can have ../ in a filename, as demonstrated by overwriting the /root/.ssh/authorized_keys file. This occurs in _download_http_url in _internal/download.py. A fix was committed 6704f2ace. | fixed | osv:GHSA-gpvv-69j7-gwj8 |
| high | any | 1.3 | Improper Input Validation in pip pip before 1.3 uses HTTP to retrieve packages from the PyPI repository, and does not perform integrity checks on package contents, which allows man-in-the-middle attackers to execute arbitrary code via a crafted response to a "pip install" operation. | fixed | osv:GHSA-g3p5-fjj9-h8gj |
| high | any | 1.5 | Improper Authentication in pip The mirroring support (-M, --use-mirrors) in Python Pip before 1.5 uses insecure DNS querying and authenticity checks which allows attackers to perform man-in-the-middle attacks. | fixed | osv:GHSA-c5h8-cq4v-cvfm |
| high | any | 21.1 | Improper Input Validation in pip A flaw was found in python-pip in the way it handled Unicode separators in git references. A remote attacker could possibly use this issue to install a different revision on a repository. The highest threat from this vulnerability is to data integrity. This is fixed in python-pip version 21.1. | fixed | osv:GHSA-5xp3-jfq3-5q8x |
| medium | any | 26.1 | pip Vulnerable to Inclusion of Functionality from Untrusted Control Sphere pip prior to version 26.1 would run self-update check functionality after installing wheel files which required importing well-known Python modules names. These module imports were intentionally deferred to increase startup time of the pip CLI. The patch changes self-update functionality to run before wheels are installed to prevent newly-installed modules from being imported shortly after the installation of a wheel package. Users should still review package contents prior to installation. | fixed | osv:PYSEC-2026-2876 |
| medium | any | 26.1 | pip has an interpretation conflict due to handling both concatenated tar and ZIP files as ZIP files pip handles concatenated tar and ZIP files as ZIP files regardless of filename or whether a file is both a tar and ZIP file. This behavior could result in confusing installation behavior, such as installing "incorrect" files according to the filename of the archive. New behavior only proceeds with installation if the file identifies uniquely as a ZIP or tar archive, not as both. | fixed | osv:PYSEC-2026-2875 |
| medium | any | 26.1.2 | PYSEC-2026-196: advisory pip would treat console_scripts and gui_scripts as paths instead of file names without sanitizing the resolved absolute path to the installation directory, leading to entry points being installed outside the installation directory. | fixed | osv:PYSEC-2026-196 |
| medium | any | 26.0 | pip Path Traversal vulnerability When pip is installing and extracting a maliciously crafted wheel archive, files may be extracted outside the installation directory. The path traversal is limited to prefixes of the installation directory, thus isn't able to inject or overwrite executable files in typical situations. | fixed | osv:PYSEC-2026-1796 |
| medium | any | 25.3 | pip's fallback tar extraction doesn't check symbolic links point to extraction directory When extracting a tar archive pip may not check symbolic links point into the extraction directory if the tarfile module doesn't implement PEP 706. Note that upgrading pip to a "fixed" version for this vulnerability doesn't fix all known vulnerabilities that are remediated by using a Python version that implements PEP 706. Note that this is a vulnerability in pip's fallback implementation of tar extraction for Python versions that don't implement PEP 706 and therefore are not secure to all vulnerabilities in the Python 'tarfile' module. If you're using a Python version that implements PEP 706 then pip doesn't use the "vulnerable" fallback code. Mitigations include upgrading to a version of pip that includes the fix, upgrading to a Python version that implements PEP 706 (Python >=3.9.17, >=3.10.12, >=3.11.4, or >=3.12), applying the linked patch, or inspecting source distributions (sdists) before installation as is already a best-practice. | fixed | osv:PYSEC-2026-1795 |
| medium | any | 26.1.2 | pip: Path traversal in console_scripts/gui_scripts entry point names allows installing scripts outside of target directory pip would treat console_scripts and gui_scripts as paths instead of file names without sanitizing the resolved absolute path to the installation directory, leading to entry points being installed outside the installation directory. | fixed | osv:GHSA-wf93-45jw-7689 |
| medium | any | 26.1 | pip Vulnerable to Inclusion of Functionality from Untrusted Control Sphere pip prior to version 26.1 would run self-update check functionality after installing wheel files which required importing well-known Python modules names. These module imports were intentionally deferred to increase startup time of the pip CLI. The patch changes self-update functionality to run before wheels are installed to prevent newly-installed modules from being imported shortly after the installation of a wheel package. Users should still review package contents prior to installation. | fixed | osv:GHSA-jp4c-xjxw-mgf9 |
| medium | any | \u2014 | pip has an interpretation conflict due to handling both concatenated tar and ZIP files as ZIP files pip handles concatenated tar and ZIP files as ZIP files regardless of filename or whether a file is both a tar and ZIP file. This behavior could result in confusing installation behavior, such as installing "incorrect" files according to the filename of the archive. New behavior only proceeds with installation if the file identifies uniquely as a ZIP or tar archive, not as both. | open | osv:GHSA-58qw-9mgm-455v |
| medium | any | 23.3 | PYSEC-2023-228: advisory When installing a package from a Mercurial VCS URL (ie "pip install
hg+...") with pip prior to v23.3, the specified Mercurial revision could
be used to inject arbitrary configuration options to the "hg clone"
call (ie "--config"). Controlling the Mercurial configuration can modify
how and which repository is installed. This vulnerability does not
affect users who aren't installing from Mercurial.
| fixed | osv:PYSEC-2023-228 |
| medium | any | 21.1 | PYSEC-2021-437: advisory A flaw was found in python-pip in the way it handled Unicode separators in git references. A remote attacker could possibly use this issue to install a different revision on a repository. The highest threat from this vulnerability is to data integrity. This is fixed in python-pip version 21.1. | fixed | osv:PYSEC-2021-437 |
| medium | any | a4c735b14a62f9cb864533808ac63936704f2ace | PYSEC-2020-173: advisory The pip package before 19.2 for Python allows Directory Traversal when a URL is given in an install command, because a Content-Disposition header can have ../ in a filename, as demonstrated by overwriting the /root/.ssh/authorized_keys file. This occurs in _download_http_url in _internal/download.py. | fixed | osv:PYSEC-2020-173 |
| medium | any | 1.5 | PYSEC-2019-160: advisory The mirroring support (-M, --use-mirrors) in Python Pip before 1.5 uses insecure DNS querying and authenticity checks which allows attackers to perform man-in-the-middle attacks. | fixed | osv:PYSEC-2019-160 |
| medium | 1.3 | 6.0 | PYSEC-2014-11: advisory pip 1.3 through 1.5.6 allows local users to cause a denial of service (prevention of package installation) by creating a /tmp/pip-build-* file for another user. | fixed | osv:PYSEC-2014-11 |
| medium | any | 1.3 | PYSEC-2013-9: advisory pip before 1.3 allows local users to overwrite arbitrary files via a symlink attack on a file in the /tmp/pip-build temporary directory. | fixed | osv:PYSEC-2013-9 |
| medium | any | 1.3 | PYSEC-2013-8: advisory pip before 1.3 uses HTTP to retrieve packages from the PyPI repository, and does not perform integrity checks on package contents, which allows man-in-the-middle attackers to execute arbitrary code via a crafted response to a "pip install" operation. | fixed | osv:PYSEC-2013-8 |
| medium | any | 23.3 | Command Injection in pip when used with Mercurial When installing a package from a Mercurial VCS URL, e.g. `pip install hg+...`, with pip prior to v23.3, the specified Mercurial revision could be used to inject arbitrary configuration options to the `hg clone` call (e.g. `--config`). Controlling the Mercurial configuration can modify how and which repository is installed. This vulnerability does not affect users who aren't installing from Mercurial. | fixed | osv:GHSA-mq26-g339-26xf |
| medium | 1.3 | 6.0 | pip lack of randomness in build directory pip 1.3 through 1.5.6 allows local users to cause a denial of service (prevention of package installation) by creating a `/tmp/pip-build-*` file for another user. | fixed | osv:GHSA-53mr-44pp-crf4 |
| medium | any | 25.3 | pip's fallback tar extraction doesn't check symbolic links point to extraction directory When extracting a tar archive pip may not check symbolic links point into the extraction directory if the tarfile module doesn't implement PEP 706. Note that upgrading pip to a "fixed" version for this vulnerability doesn't fix all known vulnerabilities that are remediated by using a Python version that implements PEP 706. Note that this is a vulnerability in pip's fallback implementation of tar extraction for Python versions that don't implement PEP 706 and therefore are not secure to all vulnerabilities in the Python 'tarfile' module. If you're using a Python version that implements PEP 706 then pip doesn't use the "vulnerable" fallback code. Mitigations include upgrading to a version of pip that includes the fix, upgrading to a Python version that implements PEP 706 (Python >=3.9.17, >=3.10.12, >=3.11.4, or >=3.12), applying the linked patch, or inspecting source distributions (sdists) before installation as is already a best-practice. | fixed | osv:GHSA-4xh5-x5gv-qwph |
| medium | any | 1.3 | Improper Link Resolution Before File Access in pip pip before 1.3 allows local users to overwrite arbitrary files via a symlink attack on a file in the /tmp/pip-build temporary directory. | fixed | osv:GHSA-4gv5-qhvr-36vv |
| medium | any | 25.2+echo.1 | ECHO-ffe1-1d3c-d9bc: advisory | fixed | osv:ECHO-ffe1-1d3c-d9bc |
| medium | any | 25.2+echo.1 | ECHO-7db2-03aa-5591: advisory | fixed | osv:ECHO-7db2-03aa-5591 |
| low | any | 26.0 | pip Path Traversal vulnerability When pip is installing and extracting a maliciously crafted wheel archive, files may be extracted outside the installation directory. The path traversal is limited to prefixes of the installation directory, thus isn't able to inject or overwrite executable files in typical situations. | fixed | osv:GHSA-6vgw-5pg2-w6jp |
Get this data programmatically \u2014 free, no authentication.
curl https://depscope.dev/api/bugs/pypi/pip