build(deps): update dependency urllib3 to v2.5.0 [security] (main)
Metadata
Current evaluation
Closed without merging as a duplicate of PR #1135, which also updates urllib3 and uv.lock. Renovate will ignore this update.
Suggested action: —
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` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](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. (`#​3610 <https://github.com/urllib3/urllib3/issues/3610>`\_\_)
- Added support for version 0.5 of `hatch-vcs` (`#​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. (`#​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 `[]`. (`#​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. (`#​3522 <https://github.com/urllib3/urllib3/issues/3522>`\__)
- Updated exceptions to save and restore more properties during the pickle/serialization process. (`#​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+. (`#​3571 <https://github.com/urllib3/urllib3/issues/3571>`\__)
## Bugfixes
- Fixed a bug with partial reads of streaming data in Emscripten. (`#​3555 <https://github.com/urllib3/urllib3/issues/3555>`\__)
## Misc
- Switched to uv for installing development dependecies. (`#​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. (`#​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 |
|---|---|---|---|---|
| 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 issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #5563 build(deps): update dependency urllib3 to v2 [security] (main) | snapcraft | closed | Closed without merging because the dependency file is unused. Renovate will ignore future urllib3 v2 updates for this repository. | |
| #5596 build(deps): update dependency urllib3 to v2 [security] (hotfix/8.10) | snapcraft | closed | Closed without merging after maintainers confirmed the dependency was unused. It was removed in PR #5598, rendering the urllib3 v2 security update unnecessary. Renovate will ignore future updates for this package. | |
| #5565 build(deps): update dependency urllib3 to v2 [security] (hotfix/8.9) | snapcraft | closed | Closed without merging after a maintainer noted the dependency file is unused. The urllib3 v2 security update was rejected, and Renovate will ignore future updates for this package. | |
| #5564 build(deps): update dependency urllib3 to v2 [security] (hotfix/7.5) | snapcraft | closed | The urllib3 security update to v2.5.0 was closed without merging. A maintainer marked the dependency as unused, prompting Renovate to ignore future minor and patch updates. The PR was rejected. | |
| #1132 build(deps): update dependency urllib3 to v2.5.0 [security] (hotfix/2.4) - autoclosed | craft-parts | closed | Renovate automatically closed this urllib3 v2.5.0 security update without review or merge. The pull request was autoclosed, likely due to branch deletion or Renovate cleanup, leaving the change unapplied. | |
| #1131 build(deps): update dependency urllib3 to v2.5.0 [security] (hotfix/2.10) - autoclosed | craft-parts | closed | Renovate automatically closed this urllib3 v2.5.0 security update without merging. The pull request was autoclosed, indicating it was superseded by a newer update or abandoned. | |
| #1133 build(deps): update dependency urllib3 to v2.5.0 [security] (hotfix/2.7) - autoclosed | craft-parts | closed | The urllib3 security update to v2.5.0 was autoclosed without review or merge. Generated by Renovate bot, the PR remained pending with zero reviewers and was ultimately abandoned. | |
| #5963 build(deps): bump urllib3 from 2.6.1 to 2.6.3 | snapcraft | closed | Closed as a duplicate of #5930. Dependabot acknowledged the closure and will stop notifying for this urllib3 release. The dependency update was handled by the referenced PR. | |
| #41 Update dependency urllib3 to v1.26.19 [SECURITY] | imagecraft | closed | Superseded and closed without merging after the urllib3 security update was addressed in pull request #39. Renovate will ignore this update and open a new PR for future versions. | |
| #1307 build(deps): bump urllib3 from 1.26.16 to 1.26.17 | charmcraft | closed | Closed as redundant. Dependabot proposed updating urllib3 to 1.26.17, but the bot noted the dependency is already up-to-date, rendering the PR unnecessary. |