Repository navigation
3.7.17.10: bundle pip 24.0.post5 (CVE-2024-3651) - #128
Merged
Merged
Conversation
ActiveState pip 24.0.post5 (ActiveState/pip#17) upgrades pip's vendored idna from 3.4 to 3.7, fixing CVE-2024-3651 (quadratic time in idna.encode() on crafted labels). The rest of pip is unchanged from 24.0.post4. The wheel is the release asset, sha256 d9d6b5a5217f2745c1f719e62076cffb924d038dd3833732858f884a131d3b69. Bump PY_VERSION to 3.7.17.10 and add a 3.7.17.10 whatsnew section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ezequielp-activestate
approved these changes
Nov 4, 2026
ezequielp-activestate
left a comment
There was a problem hiding this comment.
Approving. No blockers.
What I checked
- The bundled
pip-24.0.post5-py3-none-any.whlis byte-identical to the asset on the24.0.post5release. Its sha256 isd9d6b5a5…3d3b69, matching the description. The24.0.post5tag points at the merge commit of ActiveState/pip#17. - The wheel's
pip/tree matches the tag'ssrc/pip. The only files missing from the wheel are the LICENSE,py.typedand.pyifiles that pip never ships. - Compared with the 24.0.post4 wheel it replaces, the only changes are in
pip/__init__.py(the version),_vendor/vendor.txt,_vendor/idna/*and the dist-info. - The old wheel is removed (it shows as a rename), and
_PIP_VERSIONandPY_VERSIONare updated to match. setuptools is untouched. - Python 3.7 (
python:3.7container):- Installing the bundled wheel into a venv gives
pip 24.0.post5with vendored idna 3.7. - The crafted CVE-2024-3651 label at n = 2000 is rejected in 0.002 s.
pip download sixworks.
- Installing the bundled wheel into a venv gives
Not checked: I didn't build the interpreter or run test_ensurepip/test_venv myself. The description says those pass.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Releases 3.7.17.10: the 3.7.17.9 core with
ensurepipbundling pip 24.0.post5 instead of 24.0.post4.pip 24.0.post5 (release, ActiveState/pip#17) upgrades pip's vendored idna from 3.4 to 3.7, which fixes CVE-2024-3651: crafted host names made
idna.encode()take quadratic time. The rest of pip is unchanged from 24.0.post4.Changes
Lib/ensurepip/_bundled/: the wheel is replaced withpip-24.0.post5-py3-none-any.whl, the release asset (sha256d9d6b5a5217f2745c1f719e62076cffb924d038dd3833732858f884a131d3b69), and_PIP_VERSIONis updated to match.Include/patchlevel.h:PY_VERSIONis now3.7.17.10.Doc/whatsnew/3.7.rst.setuptools stays at 68.0.0.post3, and OpenSSL support is unchanged from 3.7.17.9.
Tested on a Linux build against OpenSSL 3.5.9:
3.7.17.10, andsys.version_infois still(3, 7, 17, 'final', 0).test_ensurepip,test_venv,test_platform,test_sys,test_sysconfig,test_siteandtest_distutilsall pass.python -m venvgets pip 24.0.post5 with vendored idna 3.7. The crafted 6,002-character label is rejected in 0.002 s.pip downloadworks, and setuptools 68.0.0.post3 imports.After merge: tag
v3.7.17.10and publish a release (not Latest), add inventorylanguage/python 3.7.17.10based on 3.7.17.9, rebuild Core-Python-3.7, and run core QA.