PYSEC-2026-3721
Vulnerability from pysec - Published: 2026-07-29 19:16 - Updated: 2026-08-21 09:45
VLAI
Details
pip would incorrectly handle doubly-encoded package URLs from indexes allowing for files to be installed to arbitrary locations on disk even when installing wheels.
This vulnerability requires downloading or installing a package from a malicious package index to succeed, malicious packages alone are not able to exploit this vulnerability. Note that this vulnerability only materially impacts users running pip download with the --only-binary option as installing source distributions from an untrusted index is already an unsafe operation that executes code during install time.
Severity
6.5 (Medium)
Impacted products
| Name | purl | pip | pkg:pypi/pip |
|---|
Aliases
{
"affected": [
{
"ecosystem_specific": {},
"package": {
"ecosystem": "PyPI",
"name": "pip",
"purl": "pkg:pypi/pip"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "26.2"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.2",
"0.2.1",
"0.3",
"0.3.1",
"0.4",
"0.5",
"0.5.1",
"0.6",
"0.6.1",
"0.6.2",
"0.6.3",
"0.7",
"0.7.1",
"0.7.2",
"0.8",
"0.8.1",
"0.8.2",
"0.8.3",
"1.0",
"1.0.1",
"1.0.2",
"1.1",
"1.2",
"1.2.1",
"1.3",
"1.3.1",
"1.4",
"1.4.1",
"1.5",
"1.5.1",
"1.5.2",
"1.5.3",
"1.5.4",
"1.5.5",
"1.5.6",
"10.0.0",
"10.0.0b1",
"10.0.0b2",
"10.0.1",
"18.0",
"18.1",
"19.0",
"19.0.1",
"19.0.2",
"19.0.3",
"19.1",
"19.1.1",
"19.2",
"19.2.1",
"19.2.2",
"19.2.3",
"19.3",
"19.3.1",
"20.0",
"20.0.1",
"20.0.2",
"20.1",
"20.1.1",
"20.1b1",
"20.2",
"20.2.1",
"20.2.2",
"20.2.3",
"20.2.4",
"20.2b1",
"20.3",
"20.3.1",
"20.3.2",
"20.3.3",
"20.3.4",
"20.3b1",
"21.0",
"21.0.1",
"21.1",
"21.1.1",
"21.1.2",
"21.1.3",
"21.2",
"21.2.1",
"21.2.2",
"21.2.3",
"21.2.4",
"21.3",
"21.3.1",
"22.0",
"22.0.1",
"22.0.2",
"22.0.3",
"22.0.4",
"22.1",
"22.1.1",
"22.1.2",
"22.1b1",
"22.2",
"22.2.1",
"22.2.2",
"22.3",
"22.3.1",
"23.0",
"23.0.1",
"23.1",
"23.1.1",
"23.1.2",
"23.2",
"23.2.1",
"23.3",
"23.3.1",
"23.3.2",
"24.0",
"24.1",
"24.1.1",
"24.1.2",
"24.1b1",
"24.1b2",
"24.2",
"24.3",
"24.3.1",
"25.0",
"25.0.1",
"25.1",
"25.1.1",
"25.2",
"25.3",
"26.0",
"26.0.1",
"26.1",
"26.1.1",
"26.1.2",
"6.0",
"6.0.1",
"6.0.2",
"6.0.3",
"6.0.4",
"6.0.5",
"6.0.6",
"6.0.7",
"6.0.8",
"6.1.0",
"6.1.1",
"7.0.0",
"7.0.1",
"7.0.2",
"7.0.3",
"7.1.0",
"7.1.1",
"7.1.2",
"8.0.0",
"8.0.1",
"8.0.2",
"8.0.3",
"8.1.0",
"8.1.1",
"8.1.2",
"9.0.0",
"9.0.1",
"9.0.2",
"9.0.3"
]
}
],
"aliases": [
"CVE-2026-13346"
],
"details": "pip would incorrectly handle doubly-encoded package URLs from indexes allowing for files to be installed to arbitrary locations on disk even when installing wheels.\n\n\n\n\nThis vulnerability requires downloading or installing a package from a malicious package index to succeed, malicious packages alone are not able to exploit this vulnerability. Note that this vulnerability only materially impacts users running `pip download` with the `--only-binary` option as installing source distributions from an untrusted index is already an unsafe operation that executes code during install time.",
"id": "PYSEC-2026-3721",
"modified": "2026-08-21T09:45:32.276278Z",
"published": "2026-07-29T19:16:44.267Z",
"references": [
{
"type": "ADVISORY",
"url": "http://www.openwall.com/lists/oss-security/2026/07/29/7"
},
{
"type": "ADVISORY",
"url": "https://mail.python.org/archives/list/security-announce@python.org/thread/L2BNQGGVQCEV7DROOORQ7WFKKFF2OOQX/"
},
{
"type": "FIX",
"url": "https://github.com/pypa/pip/pull/14110"
}
],
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N",
"type": "CVSS_V3"
}
]
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…