Skip to content

fix(deps): update dependency urllib3 to v2.5.0 [security]#499

Merged
AlexanderBarabanov merged 2 commits into
mainfrom
renovate/pypi-urllib3-vulnerability
Jul 11, 2025
Merged

fix(deps): update dependency urllib3 to v2.5.0 [security]#499
AlexanderBarabanov merged 2 commits into
mainfrom
renovate/pypi-urllib3-vulnerability

Conversation

@oep-renovate
Copy link
Copy Markdown
Contributor

@oep-renovate oep-renovate Bot commented Jun 22, 2025

This PR contains the following updates:

Package Change Age Confidence
urllib3 (changelog) ~=2.3.0 -> ~=2.5.0 age confidence
urllib3 (changelog) 2.4.0 -> 2.5.0 age confidence

urllib3 redirects are not disabled when retries are disabled on PoolManager instantiation

CVE-2025-50181 / GHSA-pq67-6m6q-mj2v

More information

Details

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:

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:

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 to discuss sponsorship or contribution opportunities.
  • Disable redirects at the request() level instead of the PoolManager() level.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


urllib3 does not control redirects in browsers and Node.js

CVE-2025-50182 / GHSA-48p4-8xcf-vxj5

More information

Details

urllib3 supports being used in a Pyodide runtime utilizing the JavaScript Fetch API or falling back on XMLHttpRequest. This means you can use Python libraries to make HTTP requests from your browser or Node.js. Additionally, urllib3 provides a mechanism 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.

Severity

  • CVSS Score: 5.3 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

urllib3/urllib3 (urllib3)

v2.5.0

Compare Source

==================

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

Compare Source

==================

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>__)

Configuration

📅 Schedule: Branch creation - "" (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 these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@oep-renovate oep-renovate Bot requested a review from a team as a code owner June 22, 2025 03:59
@github-actions github-actions Bot added the IAI Interactive AI backend label Jun 22, 2025
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-urllib3-vulnerability branch from b35de7a to 8f588d7 Compare June 24, 2025 16:09
@oep-renovate oep-renovate Bot changed the title Update dependency urllib3 to v2.5.0 [SECURITY] fix(deps): update dependency urllib3 to v2.5.0 [security] Jun 24, 2025
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-urllib3-vulnerability branch 2 times, most recently from c6ffcff to 58b6ae6 Compare June 29, 2025 03:59
@oep-renovate oep-renovate Bot changed the title fix(deps): update dependency urllib3 to v2.5.0 [security] Update dependency urllib3 to v2.5.0 [SECURITY] Jun 29, 2025
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-urllib3-vulnerability branch 2 times, most recently from fbcd201 to 3bd1d09 Compare July 6, 2025 03:59
@oep-renovate oep-renovate Bot changed the title Update dependency urllib3 to v2.5.0 [SECURITY] fix(deps): update dependency urllib3 to v2.5.0 [security] Jul 6, 2025
Signed-off-by: oep-renovate[bot] <212772560+oep-renovate[bot]@users.noreply.github.com>
@oep-renovate oep-renovate Bot force-pushed the renovate/pypi-urllib3-vulnerability branch from 3bd1d09 to bc4d39e Compare July 9, 2025 03:59
@oep-renovate
Copy link
Copy Markdown
Contributor Author

oep-renovate Bot commented Jul 9, 2025

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: interactive_ai/tests/e2e/uv.lock
Command failed: uv lock --upgrade-package urllib3
Using CPython 3.10.18 interpreter at: /opt/containerbase/tools/python/3.10.18/bin/python3
error: Distribution not found at: file:///tmp/renovate/repos/github/open-edge-platform/geti/interactive_ai/tests/e2e/rest_client

@oep-renovate
Copy link
Copy Markdown
Contributor Author

oep-renovate Bot commented Jul 10, 2025

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@AlexanderBarabanov
Copy link
Copy Markdown
Contributor

Tested locally, was able to build Geti from this branch, create project, train simple classification model, live inference, model export - no regressions found.

@AlexanderBarabanov AlexanderBarabanov added this pull request to the merge queue Jul 11, 2025
Merged via the queue into main with commit bb2445b Jul 11, 2025
25 checks passed
@AlexanderBarabanov AlexanderBarabanov deleted the renovate/pypi-urllib3-vulnerability branch July 11, 2025 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

IAI Interactive AI backend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants