Repository navigation
Release 24.0.post5
ActiveState security release on the Python 3.7 pip 24.0 line. Merged in #17. It carries everything in 24.0.post4 plus the fix below.
| CVE | Advisory | Status |
|---|---|---|
| CVE-2024-3651 | GHSA-jjg7-2v4v-x38h | Patched (vendored idna) |
What changed:
- Vendored idna 3.4 → 3.7, the upstream release that fixes CVE-2024-3651 (quadratic CONTEXTJ check on crafted labels). The tree is byte-identical to the vendored idna in upstream pip 24.1 and to the idna 3.7 wheel. idna 3.7 supports Python 3.5+, so it runs unchanged on 3.7.
- Regression test
tests/unit/test_vendored_idna.pycounts joining-type lookups instead of timing: it passes here and fails on 24.0.post4 (270,300 lookups for the crafted label). - Vendored urllib3 (1.26.20.post4), requests (2.31.0 with backports) and certifi (2026.10.23) are unchanged from 24.0.post4.
Validated on the built wheel, in python:3.7-slim:
- Versions: pip reports 24.0.post5, with vendored idna 3.7, urllib3 1.26.20 (the fork), requests 2.31.0 and certifi 2026.10.23.
- CVE-2024-3651: a crafted 6,002-character label is rejected in 0.002 s (about 2 s on 24.0.post4 at a third of that size, growing quadratically).
- 24.0.post4 checks still pass (
.netrchost lookup, plantedcacert.pem). - Network: a real
pip download, a resolve, and running pip from the zipped wheel all work.
sha256
pip-24.0.post5.tar.gz:43609eceea9ee23bcf1c1c7e977a19a91fd1d7c549d8d0548b055eeeb728f3aapip-24.0.post5-py3-none-any.whl:d9d6b5a5217f2745c1f719e62076cffb924d038dd3833732858f884a131d3b69