← Back to issue list

build(deps): update dependency urllib3 to v2.5.0 [security] (main)

View original Github issue

Metadata

Project
craft-parts
Number
#1130
Type
pull request
State
closed
Author
renovate[bot]
Labels
—
Created
Updated
Closed

Current evaluation

Renovate's urllib3 2.3.0->2.5.0 PR was closed unmerged as a duplicate of merged PR #1135 (commit 74e21521), which bumped urllib3 in pyproject.toml and uv.lock.

Resolution: closed superseded

Reason: Maintainer bepri closed the PR on 2025-06-20 stating it was a duplicate of #1135, which also bumps `uv.lock`. That replacement PR ("build(autogen): bump urllib3") was merged as commit 74e21521, applying the urllib3 upgrade via `uv sync --upgrade-package urllib3`, so the dependency update landed through the other PR.

Evaluated by: mr-cal-bot

No scores available.

Issue body

This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [urllib3](https://redirect.github.com/urllib3/urllib3) ([changelog](https://redirect.github.com/urllib3/urllib3/blob/main/CHANGES.rst)) | `==2.3.0` -> `==2.5.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/urllib3/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/urllib3/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/urllib3/2.3.0/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/urllib3/2.3.0/2.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. ### GitHub Vulnerability Alerts #### [CVE-2025-50182](https://redirect.github.com/urllib3/urllib3/security/advisories/GHSA-48p4-8xcf-vxj5) urllib3 [supports](https://urllib3.readthedocs.io/en/2.4.0/reference/contrib/emscripten.html) being used in a Pyodide runtime utilizing the [JavaScript Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) or falling back on [XMLHttpRequest](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest). This means you can use Python libraries to make HTTP requests from your browser or Node.js. Additionally, urllib3 provides [a mechanism](https://urllib3.readthedocs.io/en/2.4.0/user-guide.html#retrying-requests) to control redirects. However, the `retries` and `redirect` parameters are ignored with Pyodide; the runtime itself determines redirect behavior. ## Affected usages Any code which relies on urllib3 to control the number of redirects for an HTTP request in a Pyodide runtime. ## Impact Redirects are often used to exploit SSRF vulnerabilities. An application attempting to mitigate SSRF or open redirect vulnerabilities by disabling redirects may remain vulnerable if a Pyodide runtime redirect mechanism is unsuitable. ## Remediation If you use urllib3 in Node.js, upgrade to a patched version of urllib3. Unfortunately, browsers provide no suitable way which urllib3 can use: `XMLHttpRequest` provides no control over redirects, the Fetch API returns `opaqueredirect` responses lacking data when redirects are controlled manually. Expect default browser behavior for redirects. #### [CVE-2025-50181](https://redirect.github.com/urllib3/urllib3/security/advisories/GHSA-pq67-6m6q-mj2v) urllib3 handles redirects and retries using the same mechanism, which is controlled by the `Retry` object. The most common way to disable redirects is at the request level, as follows: ```python resp = urllib3.request("GET", "https://httpbin.org/redirect/1", redirect=False) print(resp.status) # 302 ``` However, it is also possible to disable redirects, for all requests, by instantiating a `PoolManager` and specifying `retries` in a way that disable redirects: ```python import urllib3 http = urllib3.PoolManager(retries=0) # should raise MaxRetryError on redirect http = urllib3.PoolManager(retries=urllib3.Retry(redirect=0)) # equivalent to the above http = urllib3.PoolManager(retries=False) # should return the first response resp = http.request("GET", "https://httpbin.org/redirect/1") ``` However, the `retries` parameter is currently ignored, which means all the above examples don't disable redirects. ## Affected usages Passing `retries` on `PoolManager` instantiation to disable redirects or restrict their number. By default, requests and botocore users are not affected. ## Impact Redirects are often used to exploit SSRF vulnerabilities. An application attempting to mitigate SSRF or open redirect vulnerabilities by disabling redirects at the PoolManager level will remain vulnerable. ## Remediation You can remediate this vulnerability with the following steps: * Upgrade to a patched version of urllib3. If your organization would benefit from the continued support of urllib3 1.x, please contact [sethmichaellarson@gmail.com](mailto:sethmichaellarson@gmail.com) to discuss sponsorship or contribution opportunities. * Disable redirects at the `request()` level instead of the `PoolManager()` level. --- ### Release Notes <details> <summary>urllib3/urllib3 (urllib3)</summary> ### [`v2.5.0`](https://redirect.github.com/urllib3/urllib3/blob/HEAD/CHANGES.rst#250-2025-06-18) [Compare Source](https://redirect.github.com/urllib3/urllib3/compare/2.4.0...2.5.0) \================== ## Features - Added support for the `compression.zstd` module that is new in Python 3.14. See `PEP 784 <https://peps.python.org/pep-0784/>`\_ for more information. (`#&#8203;3610 <https://github.com/urllib3/urllib3/issues/3610>`\_\_) - Added support for version 0.5 of `hatch-vcs` (`#&#8203;3612 <https://github.com/urllib3/urllib3/issues/3612>`\_\_) ## Bugfixes - Fixed a security issue where restricting the maximum number of followed redirects at the `urllib3.PoolManager` level via the `retries` parameter did not work. - Made the Node.js runtime respect redirect parameters such as `retries` and `redirects`. - Raised exception for `HTTPResponse.shutdown` on a connection already released to the pool. (`#&#8203;3581 <https://github.com/urllib3/urllib3/issues/3581>`\_\_) - Fixed incorrect `CONNECT` statement when using an IPv6 proxy with `connection_from_host`. Previously would not be wrapped in `[]`. (`#&#8203;3615 <https://github.com/urllib3/urllib3/issues/3615>`\_\_) ### [`v2.4.0`](https://redirect.github.com/urllib3/urllib3/blob/HEAD/CHANGES.rst#240-2025-04-10) [Compare Source](https://redirect.github.com/urllib3/urllib3/compare/2.3.0...2.4.0) \================== ## Features - Applied PEP 639 by specifying the license fields in pyproject.toml. (`#&#8203;3522 <https://github.com/urllib3/urllib3/issues/3522>`\__) - Updated exceptions to save and restore more properties during the pickle/serialization process. (`#&#8203;3567 <https://github.com/urllib3/urllib3/issues/3567>`\__) - Added `verify_flags` option to `create_urllib3_context` with a default of `VERIFY_X509_PARTIAL_CHAIN` and `VERIFY_X509_STRICT` for Python 3.13+. (`#&#8203;3571 <https://github.com/urllib3/urllib3/issues/3571>`\__) ## Bugfixes - Fixed a bug with partial reads of streaming data in Emscripten. (`#&#8203;3555 <https://github.com/urllib3/urllib3/issues/3555>`\__) ## Misc - Switched to uv for installing development dependecies. (`#&#8203;3550 <https://github.com/urllib3/urllib3/issues/3550>`\__) - Removed the `multiple.intoto.jsonl` asset from GitHub releases. Attestation of release files since v2.3.0 can be found on PyPI. (`#&#8203;3566 <https://github.com/urllib3/urllib3/issues/3566>`\__) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone Etc/UTC, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/canonical/craft-parts). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42MC4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjAuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed superseded Renovate's urllib3 2.3.0->2.5.0 PR was closed unmerged as a duplicate of merged PR #1135 (commit 74e21521), which bumped urllib3 in pyproject.toml and uv.lock.
stealth/space-bunny-alpha — closed superseded Renovate PR to bump urllib3 2.3.0→2.5.0 was closed unmerged by bepri on 2025-06-20 as a duplicate of autogenerated PR #1135, which was merged in commit 74e21521 (uv.lock + pyproject.toml).
stealth/space-bunny-alpha — closed superseded Closed unmerged as a duplicate; the urllib3 2.5.0 update was handled by merged PR #1135 in commit 74e21521.
qwen/qwen3.6-35b-a3b — — Closed without merging as a duplicate of PR #1135, which also updates urllib3 and uv.lock. Renovate will ignore this update.
qwen3.6-35b-a3b-mtp-q6 — — Closed without merging as a duplicate of PR #1135, which already applies the urllib3 v2.5.0 security update. Renovate will ignore this update.

Update history

No update history recorded yet.

Related work

  • Duplicate Of: canonical/craft-parts#1135 (confidence 97%)

    Explicit closing comment by bepri: "Closing as a duplicate of #1135, which also bumps uv.lock"; #1135 merged as commit 74e21521

  • Likely Fixed By: canonical/craft-parts#1135 (confidence 90%)

    Merged autogen bump of urllib3 to 2.5.0 in pyproject.toml and uv.lock (+7/-7), covering the security CVEs cited here

Related issues

Issue Project State Summary Similarity
#5564 build(deps): update dependency urllib3 to v2 [security] (hotfix/7.5) snapcraft closed Renovate's urllib3 1.26.19->2.5.0 security bump for hotfix/7.5 was closed unmerged after medubelko noted it was "Not used"; the underlying docs/requirements.txt was later deleted in merged PR #5598 (f42ae1ee4).
90%
#1133 build(deps): update dependency urllib3 to v2.5.0 [security] (hotfix/2.7) - autoclosed craft-parts closed Renovate PR #1133 was autoclosed without merge; the same urllib3 2.5.0 update was merged in #1135 as commit 74e21521.
88%
#5563 build(deps): update dependency urllib3 to v2 [security] (main) snapcraft closed Closed unmerged because the targeted dependency file was unused; merged PR #5598 (f42ae1ee4) deleted it, removing the need for urllib3 v2.
88%
#1408 fix(deps): update urllib3 to 2.5.1 to address security vulnerabilities craft-parts closed Closed unmerged; the urllib3 security update was superseded by merged PR #1411 (commit 044ea761), which upgraded uv.lock from urllib3 2.5.0 to 2.6.1.
86%
#5565 build(deps): update dependency urllib3 to v2 [security] (hotfix/8.9) snapcraft closed PR #5565 was closed unmerged: a maintainer said its urllib3 dependency file was unused. The obsolete docs requirements file was later removed by merged PR #5598 (f42ae1ee4).
86%
#195 build(deps): update dependency urllib3 to v1.26.20 (main) starflow closed Automated dependency update upgrading urllib3 to v1.26.20. Closed and merged into main by Renovate.
85%
#1024 build(deps): raise urllib3 to 2.8.0 craft-providers merged Merged PR #1024 which bumps urllib3 to 2.8.0 in `uv.lock` and `pyproject.toml`, resolving persistent OSV-scanner security failures on main.
85%
#220 build(deps): update urllib3 to 2.8.0 craft-grammar merged Merged PR #220 updating urllib3 from 2.7.0 to 2.8.0 to address three OSV security vulnerabilities (PYSEC-2026-4175/4176/4177).
84%
#5562 build(deps): bump urllib3 from 1.26.20 to 2.5.0 in /docs/.sphinx snapcraft closed Dependabot's urllib3 update was closed unmerged because the target requirements file was unused; merged PR #5598 later removed it in f42ae1ee4.
84%
#5963 build(deps): bump urllib3 from 2.6.1 to 2.6.3 snapcraft closed Closed unmerged as a duplicate of merged PR #5930, which updated urllib3 to 2.6.3 in commit a473ada2c.
84%