chore(deps): raise the pip floor past CVE-2026-8643 - #143
Merged
Conversation
pip < 26.1.2 treats console_scripts and gui_scripts entry points as paths rather than file names, without checking that the resolved absolute path stays inside the installation directory. A crafted wheel can therefore write its entry-point wrappers anywhere the installing user can write. CVSS v4.0 4.1 (MEDIUM), 8.0 (HIGH) on Red Hat's v3.1 assessment. The root project pins pip for the .venv that rfc/test/parallel runs under (see its README: "uv run pytest rfc/test/parallel"), so the vulnerable version was genuinely installed, not merely recorded in a lockfile. uv resolves the new floor to 26.2.1. uv 0.12.9 also rewrites the lockfile header from revision 1 to 3; that is the current on-disk format, unrelated to the bump. Reported in #141.
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.
Closes #141.
pip < 26.1.2treatsconsole_scripts/gui_scriptsentry points as paths rather than file names, without checking that the resolved absolute path stays inside the installation directory, so a crafted wheel can write its entry-point wrappers anywhere the installing user can write. CVSS v4.0 4.1 (MEDIUM); 8.0 (HIGH) under Red Hat's v3.1 assessment. The CVE checks out against the MITRE record — see the closing note on the issue.What changed
pyproject.tomlpip>=25.0.1→pip>=26.1.2, anduv lock, which resolves to 26.2.1.uv 0.12.9 also rewrites the lockfile header
revision = 1→3. That is the current on-disk format, not part of the bump.Why a bump and not a deletion
My first read was that the root
pyproject.tomlwas dead scaffolding from4b7f593("initialize UV") — nothing in the Makefile, CMake or CI touches it, and its only declared dependency is pip itself. That was wrong.rfc/test/parallel/README.mddocumentsuv run pytest rfc/test/parallelfrom the repo root, so this project is the harness's environment, and the root.venvhad pip 25.0.1 actually installed. The vulnerable version was live, not merely recorded.I upgraded that local
.venvin place rather than viauv sync— see the follow-up below for why.Rest of the org is clean
Checked whether anything else pins a vulnerable pip: 25
uv.lock, 2requirements.txtand 1poetry.lockacross DataZooDE; 48 Python manifests grepped across the locally-cloned repos plus API fetches for the four that are not cloned. This is the only pin of pip anywhere in the org. The ~30 repos that run pip in CI use the ambientsetup-pythonpip, and several alreadypython -m pip install --upgrade pip, which lands on a fixed version by itself.Follow-up, not in this PR
The root
.venvcarriespytest,duckdbandadbc_driver_duckdb, none of which are declared inpyproject.toml— they were installed ad hoc. A plainuv sync(oruv run, which syncs) would prune them and break the parallel harness. Worth declaring them so the documented command actually works from a clean checkout, but that changes what the harness resolves and belongs in its own change.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.