Skip to content

Releases: ActiveState/pip

Release 24.0.post4

Choose a tag to compare

@icanhasmath icanhasmath released this 29 Oct 17:03
f7dc586

ActiveState security release on the Python 3.7 pip 24.0 line, bundled by CPython 3.7.17.8. Merged in #16.

CVE Advisory Status
CVE-2023-45803 GHSA-g4mx-q9vg-27p4 Patched (vendored urllib3)
CVE-2024-37891 GHSA-34jh-p97f-mpxf Patched (vendored urllib3)
CVE-2025-50181 GHSA-pq67-6m6q-mj2v Patched (vendored urllib3)
CVE-2025-66418 GHSA-gm62-xv2j-4w53 Patched (vendored urllib3)
CVE-2025-66471 GHSA-2xpw-w6gg-jr37 Patched (vendored urllib3)
CVE-2026-21441 GHSA-38jv-5279-wg99 Patched (vendored urllib3)
CVE-2026-44431 GHSA-qccp-gfcp-xxvc Patched (vendored urllib3)
CVE-2026-97687 GHSA-8988-9cw3-xx77 Patched (vendored urllib3)
CVE-2026-97689 GHSA-vxq7-64xx-v4gw Patched (vendored urllib3)
CVE-2024-47081 GHSA-9hjg-9r4m-mvj7 Patched (vendored requests)
CVE-2026-25645 GHSA-gc5v-m9x4-r6x2 Patched (vendored requests; defense in depth)
CVE-2024-35195 GHSA-9wx4-h78v-vm56 Not affected: pip never shares an adapter between verified and --trusted-host requests

What changed:

  • Vendored urllib3 1.26.17 → ActiveState urllib3 1.26.20.post4, vendored with pip's own vendoring diff. The tree is identical to the one in pip 26.0.1.post3.
  • Vendored requests stays at 2.31.0, the last release for Python 3.7, with the CVE-2024-47081 and CVE-2026-25645 fixes backported.
  • certifi stays at 2026.10.23, so emSign Root CA - G1 is the only emSign root.

Validated on the built wheel, in python:3.7-slim:

  • Versions: pip reports 24.0.post4, with vendored urllib3 1.26.20 (the fork), requests 2.31.0 and certifi 2026.10.23, and no RequestsDependencyWarning under -W error.
  • CVE checks: a .netrc lookup for http://example.com:@attacker.com/ returns attacker.com's entry, and a planted cacert.pem is not reused.
  • Network: a real pip download from PyPI works.

sha256

  • pip-24.0.post4.tar.gz: 85db1f2616428747cf4d12486adeb9a1717a871179a483bfacd99c70c63f2561
  • pip-24.0.post4-py3-none-any.whl: 749401b66b9dee893c560b12b8ee3b6f2d2d3600bdc047350c1a9d6db9047c17

Release 26.0.1.post3

Choose a tag to compare

@icanhasmath icanhasmath released this 28 Oct 18:39
3dae9e3

ActiveState security release on the Python 3.9 pip 26.0.1 line. CPython 3.9.25.1 and 3.10.22.1 also bundle it. Merged in #15.

CVE Advisory Status
CVE-2025-66418 GHSA-gm62-xv2j-4w53 Patched (vendored urllib3)
CVE-2025-66471 GHSA-2xpw-w6gg-jr37 Patched (vendored urllib3)
CVE-2026-21441 GHSA-38jv-5279-wg99 Patched (vendored urllib3)
CVE-2026-44431 GHSA-qccp-gfcp-xxvc Patched (vendored urllib3)
CVE-2026-97687 GHSA-8988-9cw3-xx77 Patched (vendored urllib3)
CVE-2026-97689 GHSA-vxq7-64xx-v4gw Patched (vendored urllib3)
CVE-2025-50181 GHSA-pq67-6m6q-mj2v Patched (vendored urllib3)
CVE-2026-25645 GHSA-gc5v-m9x4-r6x2 Patched (vendored requests, defense in depth)

What changed:

  • Vendored urllib3: 1.26.20 is replaced by ActiveState urllib3 1.26.20.post4, with pip's usual vendoring changes (Brotli disabled). urllib3.__version__ stays 1.26.20.
  • Vendored requests 2.32.5: it carries upstream's two CVE-2026-25645 commits from 2.33.0 (66d21cb07b and e331a288f3). pip didn't reach the vulnerable path, because its vendored certifi already extracts the CA bundle.
  • Unchanged: the 26.0.1.post2 fixes, including certifi 2026.10.23.

Validated on the built wheel, in python:3.9-slim and python:3.10-slim:

  • Versions: the vendored packages report the expected versions, and there's no RequestsDependencyWarning.
  • CVE-2026-25645: extract_zipped_paths() doesn't reuse a planted file.
  • Network: pip download and a --dry-run resolution against PyPI work, including with pip running from the wheel file.
  • urllib3's test suite passes on both, apart from failures that also happen with upstream 1.26.20 in the same container, and one stale test that ActiveState/urllib3#6 removes.

sha256

  • pip-26.0.1.post3.tar.gz: aa4836690fb9b6d2b1520ef0001332fceebf21931be736fcbd724853bb55ba92
  • pip-26.0.1.post3-py3-none-any.whl: be55af8fd6e6afe2728f7539eae1ebe00e64264922f740aedfea619847a6e1d0

Release 26.0.1.post2

Choose a tag to compare

@icanhasmath icanhasmath released this 28 Oct 16:44
69d4143

ActiveState security release on the Python 3.9 pip 26.0.1 line. Merged in #14.

CVE Advisory Status
— GHSA-6q48-6c7w-9gw2 (follow-up) Patched: vendored certifi 2026.10.19 → 2026.10.23

What changed:

  • Two more emSign roots are dropped: emSign Root CA - C1 and emSign ECC Root CA - C3. They come from the same eMudhra/emSign CA key compromise as emSign ECC Root CA - G3, which the previous release removed.
  • emSign Root CA - G1 is now the only emSign root in the bundle.
  • Nothing else in pip changes.

Validated on the built wheel, in python:3.9-slim:

  • Version: pip reports 26.0.1.post2, and the vendored certifi reports 2026.10.23.
  • Roots: the bundle has 118 roots, and G1 is the only emSign root.
  • Network: a real pip download from PyPI works.
  • Diff from the previous release: the wheel differs from the previous release's only in the vendored certifi files, pip/__init__.py, RECORD and the metadata version.

sha256

  • pip-26.0.1.post2.tar.gz: 6861db248e0b4574f45730ce6a4321da325572f6f74433e9cc7e9245298ced14
  • pip-26.0.1.post2-py3-none-any.whl: b3fe7b5facd4aab5c11a14cf6a689b71045525c2b8dd35d6a6b45b2e83c0e7c5

Release 25.0.1.post2

Choose a tag to compare

@icanhasmath icanhasmath released this 28 Oct 16:44
446f55f

ActiveState security release on the Python 3.8 pip 25.0.1 line. Merged in #13.

CVE Advisory Status
— GHSA-6q48-6c7w-9gw2 (follow-up) Patched: vendored certifi 2026.10.19 → 2026.10.23

What changed:

  • Two more emSign roots are dropped: emSign Root CA - C1 and emSign ECC Root CA - C3. They come from the same eMudhra/emSign CA key compromise as emSign ECC Root CA - G3, which the previous release removed.
  • emSign Root CA - G1 is now the only emSign root in the bundle.
  • Nothing else in pip changes.

Validated on the built wheel, in python:3.8-slim:

  • Version: pip reports 25.0.1.post2, and the vendored certifi reports 2026.10.23.
  • Roots: the bundle has 118 roots, and G1 is the only emSign root.
  • Network: a real pip download from PyPI works.
  • Diff from the previous release: the wheel differs from the previous release's only in the vendored certifi files, pip/__init__.py, RECORD and the metadata version.

sha256

  • pip-25.0.1.post2.tar.gz: 9247655893552ea118e49e20153c705e092a84f616d58f8ec6152c3d3c8a2b4c
  • pip-25.0.1.post2-py3-none-any.whl: 5e2925ce7f2c9cfceebe11d47b525d59a8338bd359186bd9ccb1a46555d806de

Release 24.0.post3

Choose a tag to compare

@icanhasmath icanhasmath released this 28 Oct 16:44
25c9472

ActiveState security release on the Python 3.7 pip 24.0 line. Merged in #12.

CVE Advisory Status
— GHSA-6q48-6c7w-9gw2 (follow-up) Patched: vendored certifi 2026.10.19 → 2026.10.23

What changed:

  • Two more emSign roots are dropped: emSign Root CA - C1 and emSign ECC Root CA - C3. They come from the same eMudhra/emSign CA key compromise as emSign ECC Root CA - G3, which the previous release removed.
  • emSign Root CA - G1 is now the only emSign root in the bundle.
  • Nothing else in pip changes.

Validated on the built wheel, in python:3.7-slim:

  • Version: pip reports 24.0.post3, and the vendored certifi reports 2026.10.23.
  • Roots: the bundle has 118 roots, and G1 is the only emSign root.
  • Network: a real pip download from PyPI works.
  • Diff from the previous release: the wheel differs from the previous release's only in the vendored certifi files, pip/__init__.py, RECORD and the metadata version.

sha256

  • pip-24.0.post3.tar.gz: 223f92bdcb53730d1d2086661e8918f235c81562adbc5cdc6c90c4896e11b7a5
  • pip-24.0.post3-py3-none-any.whl: 2cda945c314810ab760bd913874e11c13faca17e64544320fccd90bf7532587f

Release 21.3.1.post2

Choose a tag to compare

@icanhasmath icanhasmath released this 28 Oct 16:44
de1cca2

ActiveState security release on the Python 3.6 pip 21.3.1 line. Merged in #11.

CVE Advisory Status
— GHSA-6q48-6c7w-9gw2 (follow-up) Patched: vendored certifi 2026.10.19.post1 → 2026.10.23.post1

What changed:

  • Two more emSign roots are dropped: emSign Root CA - C1 and emSign ECC Root CA - C3. They come from the same eMudhra/emSign CA key compromise as emSign ECC Root CA - G3, which the previous release removed.
  • emSign Root CA - G1 is now the only emSign root in the bundle.
  • Nothing else in pip changes.

Validated on the built wheel, in python:3.6-slim:

  • Version: pip reports 21.3.1.post2, and the vendored certifi reports 2026.10.23.post1.
  • Roots: the bundle has 118 roots, and G1 is the only emSign root.
  • Network: a real pip download from PyPI works.
  • Diff from the previous release: the wheel differs from the previous release's only in the vendored certifi files, pip/__init__.py, RECORD and the metadata version.

sha256

  • pip-21.3.1.post2.tar.gz: b0b5d96153bafd8bb4ada675d05a29e2d19532bb9eae7f640193fa5614602be2
  • pip-21.3.1.post2-py3-none-any.whl: 20734063e0605b6a4f7d7a270a04e1529af87ee9f6d22cf5f08bbcc6b0ead7ba

Release 20.3.4.post4

Choose a tag to compare

@icanhasmath icanhasmath released this 28 Oct 16:44
29feaea

ActiveState security release on the Python 2.7 pip 20.3.4 line. Merged in #10.

CVE Advisory Status
— GHSA-6q48-6c7w-9gw2 (follow-up) Patched: vendored certifi 2026.10.19.post1 → 2026.10.23.post1

What changed:

  • Two more emSign roots are dropped: emSign Root CA - C1 and emSign ECC Root CA - C3. They come from the same eMudhra/emSign CA key compromise as emSign ECC Root CA - G3, which the previous release removed.
  • emSign Root CA - G1 is now the only emSign root in the bundle.
  • Nothing else in pip changes.

Validated on the built wheel, in python:2.7-slim:

  • Version: pip reports 20.3.4.post4, and the vendored certifi reports 2026.10.23.post1.
  • Roots: the bundle has 118 roots, and G1 is the only emSign root.
  • Network: a real pip download from PyPI works.
  • Diff from the previous release: the wheel differs from the previous release's only in the vendored certifi files, pip/__init__.py, RECORD and the metadata version.

sha256

  • pip-20.3.4.post4.tar.gz: 89d4303fa7eb2b0e56a3498424eee39913f530400e78f34805963b30a04f7579
  • pip-20.3.4.post4-py2.py3-none-any.whl: 53eba7622664cacd5dc58bff49691157169b70ae2784361d0ba92e96715cd7c7

Release 26.0.1.post1

Choose a tag to compare

@icanhasmath icanhasmath released this 22 Oct 19:06
c9585e3

First ActiveState security release for pip 26.0.1, the last pip for Python 3.9 (26.1 requires 3.10). Merged in #7 and #9.

CVE Advisory Status
CVE-2026-3219 GHSA-58qw-9mgm-455v Patched
CVE-2026-6357 GHSA-jp4c-xjxw-mgf9 Patched
CVE-2026-8643 GHSA-wf93-45jw-7689 Patched (exploitable here; distlib 0.4.0)
CVE-2026-13346 GHSA-qwm4-qh6w-59xr Patched
— GHSA-6q48-6c7w-9gw2 Patched: vendored certifi 2026.1.4 → 2026.10.19 (emSign, critical)
CVE-2025-8869 GHSA-4xh5-x5gv-qwph Fixed in 26.0.1; hardened here with pypa#14127 (affects 3.9.0–3.9.16)
CVE-2026-1703 GHSA-6vgw-5pg2-w6jp Already fixed in 26.0.1

Review-round hardening (also in this release):

  • CVE-2025-8869 follow-up: pypa#14127 is ported, rejecting symlink redirection in the tar fallback.
  • Path checks: containment checks are root-safe and //-safe.
  • Archive members: symlink targets are matched against normalized member names.
  • Error messages: an unsafe download file name now gives a pip ERROR: instead of a traceback.

Validated on the built wheel, in the matching python:X-slim image:

  • CVE-2026-6357: the end-to-end _manylinux exploit is not executed.
  • CVE-2026-1703: the sibling-prefix wheel is blocked.
  • CVE-2025-8869: both pypa#14127 escape archives are refused.
  • Archive shapes: valid ./-prefixed and implied-directory archives unpack.
  • Bundled certifi: the bundle has no emSign ECC G3, TrustCor, E-Tugra or GLOBALTRUST roots.
  • Network: a real pip download from PyPI works.

sha256

  • pip-26.0.1.post1.tar.gz: f7498556845d8e6045239a761007fc024c3edcfd609ff1dd062485bedf7a370f
  • pip-26.0.1.post1-py3-none-any.whl: 6cd40409a936257162fe17e1585488a1804798057330fbba5b152a858919226d

Release 25.0.1.post1

Choose a tag to compare

@icanhasmath icanhasmath released this 22 Oct 19:06
2dc9067

First ActiveState security release for pip 25.0.1, the last pip for Python 3.8. Merged in #6.

CVE Advisory Status
CVE-2025-8869 GHSA-4xh5-x5gv-qwph Patched, plus the pypa#14127 hardening (affects 3.8.0–3.8.16, which have no data_filter)
CVE-2026-1703 GHSA-6vgw-5pg2-w6jp Patched
CVE-2026-3219 GHSA-58qw-9mgm-455v Patched
CVE-2026-6357 GHSA-jp4c-xjxw-mgf9 Patched
CVE-2026-8643 GHSA-wf93-45jw-7689 Patched (exploitable here; distlib 0.3.9)
CVE-2026-13346 GHSA-qwm4-qh6w-59xr Patched
— GHSA-6q48-6c7w-9gw2 Patched: vendored certifi 2024.8.30 → 2026.10.19 (emSign, critical)

Review-round hardening (also in this release):

  • CVE-2025-8869 follow-up: pypa#14127 is ported, rejecting symlink redirection in the tar fallback.
  • Path checks: containment checks are root-safe and //-safe.
  • Archive members: symlink targets are matched against normalized member names.
  • Error messages: an unsafe download file name now gives a pip ERROR: instead of a traceback.

Validated on the built wheel, in the matching python:X-slim image:

  • CVE-2026-6357: the end-to-end _manylinux exploit is not executed.
  • CVE-2026-1703: the sibling-prefix wheel is blocked.
  • CVE-2025-8869: both pypa#14127 escape archives are refused.
  • Archive shapes: valid ./-prefixed and implied-directory archives unpack.
  • Bundled certifi: the bundle has no emSign ECC G3, TrustCor, E-Tugra or GLOBALTRUST roots.
  • Network: a real pip download from PyPI works.

sha256

  • pip-25.0.1.post1.tar.gz: 6df47022cb9742a835ab64a7e13379f73636405f152b8fdaed517f7f3eab735b
  • pip-25.0.1.post1-py3-none-any.whl: 182fbd0d01fb0757ca6c0fd5e9a4290699a2115d950060c055f15b7795655de0

Release 24.0.post2

Choose a tag to compare

@icanhasmath icanhasmath released this 22 Oct 19:06
e3a696b

Second ActiveState security release for pip 24.0 (Python 3.7), superseding the 24.0.0.1 build. Merged in #5.

The version is 24.0.post2. 24.0.0.1 reported itself as plain 24.0, so it counts as release #1, and the scanner version for this one is 24.0.0.2.

CVE Advisory Status
CVE-2026-3219 GHSA-58qw-9mgm-455v Patched
CVE-2026-6357 GHSA-jp4c-xjxw-mgf9 Patched
CVE-2026-8643 GHSA-wf93-45jw-7689 Patched (exploitable here; distlib 0.3.8)
CVE-2026-13346 GHSA-qwm4-qh6w-59xr Patched
CVE-2024-39689 GHSA-248v-346w-9cwc Patched: vendored certifi upgrade (GLOBALTRUST)
— GHSA-6q48-6c7w-9gw2 Patched: vendored certifi upgrade (emSign, critical)
CVE-2025-8869 GHSA-4xh5-x5gv-qwph Patched in 24.0.0.1; hardened here with pypa#14127 (3.7 always uses the tar fallback)
CVE-2026-1703 GHSA-6vgw-5pg2-w6jp Patched in 24.0.0.1; its commonpath check broke // prefixes, which is fixed here

Vendored certifi moves from 2023.7.22 to 2026.10.19, byte-identical to pip 26.2.2's vendored copy.

Review-round hardening (also in this release):

  • CVE-2025-8869 follow-up: pypa#14127 is ported, rejecting symlink redirection in the tar fallback.
  • Path checks: containment checks are root-safe and //-safe.
  • Archive members: symlink targets are matched against normalized member names.
  • Error messages: an unsafe download file name now gives a pip ERROR: instead of a traceback.

Validated on the built wheel, in the matching python:X-slim image:

  • CVE-2026-6357: the end-to-end _manylinux exploit is not executed.
  • CVE-2026-1703: the sibling-prefix wheel is blocked.
  • CVE-2025-8869: both pypa#14127 escape archives are refused.
  • Archive shapes: valid ./-prefixed and implied-directory archives unpack.
  • Bundled certifi: the bundle has no emSign ECC G3, TrustCor, E-Tugra or GLOBALTRUST roots.
  • Network: a real pip download from PyPI works.

sha256

  • pip-24.0.post2.tar.gz: 23dd20ed6578dd7a42b6f98f11f13b73fb4a823da2145cd1c212d56db4b55457
  • pip-24.0.post2-py3-none-any.whl: f5a127fad99dba8f6f72f69d4944cbc9f526356b4a8da994aded64da1016822f