CVE-2025-8869: Fallback tar extraction in pip doesn't check symbolic links point to extraction directory

Published Sep 24, 2025
·
Updated

Summary

In the fallback extraction path for source distributions, pip used Python’s tarfile module without verifying that symbolic/hard link targets resolve inside the intended extraction directory. A malicious sdist can include links that escape the target directory and overwrite arbitrary files on the invoking host during pip install.

Impact

Successful exploitation enables arbitrary file overwrite outside the build/extraction directory on the machine running pip. This can be leveraged to tamper with configuration or startup files and may lead to further code execution depending on the environment, but the direct, guaranteed impact is integrity compromise on the vulnerable system.

Conditions

The issue is triggered when installing an attacker-controlled sdist (e.g., from an index or URL) and the fallback extraction code path is used. No special privileges are required beyond running pip install; active user action is necessary.

Remediation

The fix, while available as a patch that can be manually applied, has not yet been put into a numbered version but is planned for 25.3. Using a Python interpreter that implements the safe-extraction behavior described by PEP 706 provides additional defense in depth for other tarfile issues but is not a substitute for upgrading pip for this specific flaw.

Other sources

Fallback tar extraction in pip doesn't check symbolic links point to extraction directory

Microsoft

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.

IBM

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.

NVD

Affected Software

6 affected componentsFixes available
Python Software Foundation pip
Python Software Foundation Python<3.9.17, <3.10.12, <3.11.4, <3.12
pip/pip<=25.2
Microsoft azl3 python-pip 24.2-3
Microsoft azl3 python-pip 24.2-4
IBM IBM® Db2® on Cloud Pak for Data and Db2 Warehouse on Cloud Pak for Data<=v4.8 v5.0v5.1v5.2v5.3

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade pip/pip to a version that resolves this vulnerability.

    Patch pull/13550
  2. Upgrade

    Upgrade Python to a version that resolves this vulnerability.

    Fixed in 3.9.17
  3. Upgrade

    Upgrade Python to a version that resolves this vulnerability.

    Fixed in 3.10.12
  4. Upgrade

    Upgrade Python to a version that resolves this vulnerability.

    Fixed in 3.11.4
  5. Upgrade

    Upgrade Python to a version that resolves this vulnerability.

    Fixed in 3.12
  6. Compensating control

    Manually inspect source distributions (sdists) before running pip install to ensure they do not contain symbolic or hard links that escape the intended extraction directory; if you cannot upgrade or apply the pip patch, avoid installing untrusted sdists or install only from vetted indexes.

Event History

Sep 24, 2025
CVE Published
via MITRE·02:56 PM
Data Sourced
via MITRE·02:56 PM
Description
Data Sourced
via NVD·03:15 PM
DescriptionSeverity
Advisory Published
via GitHub·03:31 PM
Data Sourced
via GitHub·03:31 PM
DescriptionWeaknessAffected Software
Sep 27, 2025
Data Sourced
via Microsoft·01:02 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·01:02 AM
Affected Software
Updated
via Microsoft·01:02 AM
DescriptionSeverity
Updated
via Microsoft·01:02 AM
Affected Software
Jun 19, 2026
Data Sourced
via IBM·12:00 AM
DescriptionAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2025-8869?

CVE-2025-8869 is rated as a moderate severity vulnerability due to potential risks associated with symbolic link exploitation during tar archive extraction.

2

How do I fix CVE-2025-8869?

To fix CVE-2025-8869, upgrade pip to the latest version where the vulnerability has been addressed.

3

What software versions are affected by CVE-2025-8869?

CVE-2025-8869 affects pip and versions of Python up to 3.9.17, 3.10.12, 3.11.4, and 3.12.

4

What type of vulnerability is CVE-2025-8869?

CVE-2025-8869 is a symbolic link vulnerability that may allow unauthorized access to files in the extraction directory.

5

Is there a workaround for CVE-2025-8869?

A temporary workaround for CVE-2025-8869 includes manually verifying symbolic links in tar archives before extraction.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203