Repository navigation
fix: require urllib3 2.8.0 for security fixes - #456
Conversation
Reviewer's guide (collapsed on small PRs)Reviewer's GuideThis PR prevents installation of vulnerable urllib3 releases by consistently requiring 2.8.0 in project metadata, the lockfile, benchmark commands, and dependency architecture documentation. No application code changes are needed because the existing Python compatibility range and URL-reader behavior remain compatible; validation covers linting, typing, tests across supported interpreters, lock and package integrity, auditing, builds, and documentation checks. Flow diagram for excluding vulnerable urllib3 releasesflowchart LR
Request[Dependency resolution] --> Constraint[urllib3 >= 2.8.0]
Constraint --> Safe[urllib3 2.8.0 or newer]
Constraint -. excludes .-> Vulnerable[urllib3 < 2.8.0]
Safe --> Validation[uv audit and package checks]
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #456 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 7 7
Lines 1032 1032
=========================================
Hits 1032 1032
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
Why
The runtime requirement and root lockfile allowed urllib3 2.7.0, which is affected by all three advisories in the October 14 Dependabot digest. Verified against the upstream advisories on October 15, 2026:
PyPI lists 2.8.0 as the latest stable release, published September 15, 2026. The upstream changelog documents the three fixes.
Changes
urllib3>=2.8.0so new installs cannot select the affected versions.uv.lockwithuv lock --upgrade-package urllib3==2.8.0, including verified distribution hashes. urllib3 is the only package version changed; uv 0.12.23 also updates the lock format revision from 3 to 5.lat.md/architecture.md. The documentation requirements already pin urllib3 2.8.0.Compatibility
urllib3 2.8.0 requires Python >=3.10, so json2xml's Python >=3.11 requirement stays valid. Reviewed the URL reader: it uses
PoolManager, boundedread(..., decode_content=False), and its own limited decompression; it does not configure an HTTPS proxy or call the affected streaming methods. No application code changes are needed for the upgrade. Upstream's HTTPS proxy TLS behavior correction remains relevant to downstream users who configure their own proxy clients.Validation
make check-allon CPython 3.12.14: Ruff and ty pass; 509 passed, 149 skipped, 100% statement coverage.make testruns on CPython 3.11.17, 3.13.16, 3.14.8, 3.14.8 free-threaded, and PyPy Python 3.11.16: 509 passed, 149 skipped on each.uv lock --check: pass.uv audit --locked: no known vulnerabilities or adverse project statuses in 17 packages.uv pip check --python .venv/bin/python: all installed packages compatible.uv build: wheel and sdist build successfully; inspected both distributions to confirmRequires-Python: >=3.11andRequires-Dist: urllib3>=2.8.0.lat check(via npx) andgit diff --check: pass.The 149 skipped tests require the optional Rust extension.
make test-rustwas attempted but Cargo is not installed locally. Stable CPython 3.15.0 is not available in the local uv download catalog, and local testing was Linux-only; the existing PR CI matrix covers the broader runtime/platform set.No version bump, tag, package upload, or release is included.
Summary by Sourcery
Require urllib3 2.8.0 across runtime and locked dependency paths to prevent installation of vulnerable releases.
Bug Fixes:
Enhancements:
Build: