Use TLS settings in selecting connection pool#6655
Conversation
3423966 to
238dc2f
Compare
Previously, if someone made a request with `verify=False` then made a request where they expected verification to be enabled to the same host, they would potentially reuse a connection where TLS had not been verified. This fixes that issue.
238dc2f to
c0813a2
Compare
| if typing.TYPE_CHECKING: | ||
| from .models import PreparedRequest |
There was a problem hiding this comment.
Not against this, but I think this is the first time we're introducing typing into Requests. I'm curious if we want to start that or push it into typeshed since this will be precedent for future inline typing?
There was a problem hiding this comment.
This is for a private method (that I fully anticipate people abusing) but we're not advertising things are typed and so it's not something I'm concerned with.
| def test_different_connection_pool_for_tls_settings(self): | ||
| s = requests.Session() | ||
| r1 = s.get("https://invalid.badssl.com", verify=False) | ||
| assert r1.status_code == 421 | ||
| with pytest.raises(requests.exceptions.SSLError): | ||
| s.get("https://invalid.badssl.com") |
There was a problem hiding this comment.
There may not be a better way to test this but I don't know if we have other tests that require contacting a live site with TLS disabled. That may have some durability issues and means we're going to take the first response we get back. Probably minor, but figured I'd call it out.
There was a problem hiding this comment.
There are many alternatives here, but those are all significantly more effort and this shows the behaviour is fixed before and after handily. I'm sure Linux folks will get pissed but I'm not as bothered about finding time later to do this a different way after we have fixed this
There was a problem hiding this comment.
I'll try to prioritize better (offline) tests soon
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | `==2.31.0` -> `==2.32.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/) | ### GitHub Vulnerability Alerts #### [CVE-2024-35195](https://togithub.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56) When making requests through a Requests `Session`, if the first request is made with `verify=False` to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of `verify`. This behavior will continue for the lifecycle of the connection in the connection pool. ### Remediation Any of these options can be used to remediate the current issue, we highly recommend upgrading as the preferred mitigation. * Upgrade to `requests>=2.32.0`. * For `requests<2.32.0`, avoid setting `verify=False` for the first request to a host while using a Requests Session. * For `requests<2.32.0`, call `close()` on `Session` objects to clear existing connections if `verify=False` is used. ### Related Links * [https://github.com/psf/requests/pull/6655](https://togithub.com/psf/requests/pull/6655) --- ### Release Notes <details> <summary>psf/requests (requests)</summary> ### [`v2.32.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2320-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.31.0...v2.32.0) **Security** - Fixed an issue where setting `verify=False` on the first request from a Session will cause subsequent requests to the *same origin* to also ignore cert verification, regardless of the value of `verify`. (GHSA-9wx4-h78v-vm56) **Improvements** - `verify=True` now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. ([#​6667](https://togithub.com/psf/requests/issues/6667)) - Requests now supports optional use of character detection (`chardet` or `charset_normalizer`) when repackaged or vendored. This enables `pip` and other projects to minimize their vendoring surface area. The `Response.text()` and `apparent_encoding` APIs will default to `utf-8` if neither library is present. ([#​6702](https://togithub.com/psf/requests/issues/6702)) **Bugfixes** - Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. ([#​6589](https://togithub.com/psf/requests/issues/6589)) - Fixed deserialization bug in JSONDecodeError. ([#​6629](https://togithub.com/psf/requests/issues/6629)) - Fixed bug where an extra leading `/` (path separator) could lead urllib3 to unnecessarily reparse the request URI. ([#​6644](https://togithub.com/psf/requests/issues/6644)) **Deprecations** - Requests has officially added support for CPython 3.12 ([#​6503](https://togithub.com/psf/requests/issues/6503)) - Requests has officially added support for PyPy 3.9 and 3.10 ([#​6641](https://togithub.com/psf/requests/issues/6641)) - Requests has officially dropped support for CPython 3.7 ([#​6642](https://togithub.com/psf/requests/issues/6642)) - Requests has officially dropped support for PyPy 3.7 and 3.8 ([#​6641](https://togithub.com/psf/requests/issues/6641)) **Documentation** - Various typo fixes and doc improvements. **Packaging** - Requests has started adopting some modern packaging practices. The source files for the projects (formerly `requests`) is now located in `src/requests` in the Requests sdist. ([#​6506](https://togithub.com/psf/requests/issues/6506)) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system using `hatchling`. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format. </details> --- ### 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 this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/lettuce-financial/github-bot-signed-commit). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjMuNSIsInVwZGF0ZWRJblZlciI6IjM3LjM2My41IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | minor | `==2.31.0` -> `==2.32.0` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. ### GitHub Vulnerability Alerts #### [CVE-2024-35195](https://togithub.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56) When making requests through a Requests `Session`, if the first request is made with `verify=False` to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of `verify`. This behavior will continue for the lifecycle of the connection in the connection pool. ### Remediation Any of these options can be used to remediate the current issue, we highly recommend upgrading as the preferred mitigation. * Upgrade to `requests>=2.32.0`. * For `requests<2.32.0`, avoid setting `verify=False` for the first request to a host while using a Requests Session. * For `requests<2.32.0`, call `close()` on `Session` objects to clear existing connections if `verify=False` is used. ### Related Links * [https://github.com/psf/requests/pull/6655](https://togithub.com/psf/requests/pull/6655) --- ### Release Notes <details> <summary>psf/requests (requests)</summary> ### [`v2.32.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2320-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.31.0...v2.32.0) **Security** - Fixed an issue where setting `verify=False` on the first request from a Session will cause subsequent requests to the *same origin* to also ignore cert verification, regardless of the value of `verify`. (GHSA-9wx4-h78v-vm56) **Improvements** - `verify=True` now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. ([#​6667](https://togithub.com/psf/requests/issues/6667)) - Requests now supports optional use of character detection (`chardet` or `charset_normalizer`) when repackaged or vendored. This enables `pip` and other projects to minimize their vendoring surface area. The `Response.text()` and `apparent_encoding` APIs will default to `utf-8` if neither library is present. ([#​6702](https://togithub.com/psf/requests/issues/6702)) **Bugfixes** - Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. ([#​6589](https://togithub.com/psf/requests/issues/6589)) - Fixed deserialization bug in JSONDecodeError. ([#​6629](https://togithub.com/psf/requests/issues/6629)) - Fixed bug where an extra leading `/` (path separator) could lead urllib3 to unnecessarily reparse the request URI. ([#​6644](https://togithub.com/psf/requests/issues/6644)) **Deprecations** - Requests has officially added support for CPython 3.12 ([#​6503](https://togithub.com/psf/requests/issues/6503)) - Requests has officially added support for PyPy 3.9 and 3.10 ([#​6641](https://togithub.com/psf/requests/issues/6641)) - Requests has officially dropped support for CPython 3.7 ([#​6642](https://togithub.com/psf/requests/issues/6642)) - Requests has officially dropped support for PyPy 3.7 and 3.8 ([#​6641](https://togithub.com/psf/requests/issues/6641)) **Documentation** - Various typo fixes and doc improvements. **Packaging** - Requests has started adopting some modern packaging practices. The source files for the projects (formerly `requests`) is now located in `src/requests` in the Requests sdist. ([#​6506](https://togithub.com/psf/requests/issues/6506)) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system using `hatchling`. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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. --- - [ ] If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate).
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | `==2.31.0` -> `==2.32.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-2024-35195](https://togithub.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56) When making requests through a Requests `Session`, if the first request is made with `verify=False` to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of `verify`. This behavior will continue for the lifecycle of the connection in the connection pool. ### Remediation Any of these options can be used to remediate the current issue, we highly recommend upgrading as the preferred mitigation. * Upgrade to `requests>=2.32.0`. * For `requests<2.32.0`, avoid setting `verify=False` for the first request to a host while using a Requests Session. * For `requests<2.32.0`, call `close()` on `Session` objects to clear existing connections if `verify=False` is used. ### Related Links * [https://github.com/psf/requests/pull/6655](https://togithub.com/psf/requests/pull/6655) --- ### Release Notes <details> <summary>psf/requests (requests)</summary> ### [`v2.32.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2320-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.31.0...v2.32.0) **Security** - Fixed an issue where setting `verify=False` on the first request from a Session will cause subsequent requests to the *same origin* to also ignore cert verification, regardless of the value of `verify`. (GHSA-9wx4-h78v-vm56) **Improvements** - `verify=True` now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. ([#​6667](https://togithub.com/psf/requests/issues/6667)) - Requests now supports optional use of character detection (`chardet` or `charset_normalizer`) when repackaged or vendored. This enables `pip` and other projects to minimize their vendoring surface area. The `Response.text()` and `apparent_encoding` APIs will default to `utf-8` if neither library is present. ([#​6702](https://togithub.com/psf/requests/issues/6702)) **Bugfixes** - Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. ([#​6589](https://togithub.com/psf/requests/issues/6589)) - Fixed deserialization bug in JSONDecodeError. ([#​6629](https://togithub.com/psf/requests/issues/6629)) - Fixed bug where an extra leading `/` (path separator) could lead urllib3 to unnecessarily reparse the request URI. ([#​6644](https://togithub.com/psf/requests/issues/6644)) **Deprecations** - Requests has officially added support for CPython 3.12 ([#​6503](https://togithub.com/psf/requests/issues/6503)) - Requests has officially added support for PyPy 3.9 and 3.10 ([#​6641](https://togithub.com/psf/requests/issues/6641)) - Requests has officially dropped support for CPython 3.7 ([#​6642](https://togithub.com/psf/requests/issues/6642)) - Requests has officially dropped support for PyPy 3.7 and 3.8 ([#​6641](https://togithub.com/psf/requests/issues/6641)) **Documentation** - Various typo fixes and doc improvements. **Packaging** - Requests has started adopting some modern packaging practices. The source files for the projects (formerly `requests`) is now located in `src/requests` in the Requests sdist. ([#​6506](https://togithub.com/psf/requests/issues/6506)) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system using `hatchling`. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format. </details> --- ### 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 this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/sdk-platform-java). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
[](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | `==2.31.0` -> `==2.32.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-2024-35195](https://togithub.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56) When making requests through a Requests `Session`, if the first request is made with `verify=False` to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of `verify`. This behavior will continue for the lifecycle of the connection in the connection pool. ### Remediation Any of these options can be used to remediate the current issue, we highly recommend upgrading as the preferred mitigation. * Upgrade to `requests>=2.32.0`. * For `requests<2.32.0`, avoid setting `verify=False` for the first request to a host while using a Requests Session. * For `requests<2.32.0`, call `close()` on `Session` objects to clear existing connections if `verify=False` is used. ### Related Links * [https://github.com/psf/requests/pull/6655](https://togithub.com/psf/requests/pull/6655) --- ### Release Notes <details> <summary>psf/requests (requests)</summary> ### [`v2.32.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2320-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.31.0...v2.32.0) **Security** - Fixed an issue where setting `verify=False` on the first request from a Session will cause subsequent requests to the *same origin* to also ignore cert verification, regardless of the value of `verify`. (GHSA-9wx4-h78v-vm56) **Improvements** - `verify=True` now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. ([#​6667](https://togithub.com/psf/requests/issues/6667)) - Requests now supports optional use of character detection (`chardet` or `charset_normalizer`) when repackaged or vendored. This enables `pip` and other projects to minimize their vendoring surface area. The `Response.text()` and `apparent_encoding` APIs will default to `utf-8` if neither library is present. ([#​6702](https://togithub.com/psf/requests/issues/6702)) **Bugfixes** - Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. ([#​6589](https://togithub.com/psf/requests/issues/6589)) - Fixed deserialization bug in JSONDecodeError. ([#​6629](https://togithub.com/psf/requests/issues/6629)) - Fixed bug where an extra leading `/` (path separator) could lead urllib3 to unnecessarily reparse the request URI. ([#​6644](https://togithub.com/psf/requests/issues/6644)) **Deprecations** - Requests has officially added support for CPython 3.12 ([#​6503](https://togithub.com/psf/requests/issues/6503)) - Requests has officially added support for PyPy 3.9 and 3.10 ([#​6641](https://togithub.com/psf/requests/issues/6641)) - Requests has officially dropped support for CPython 3.7 ([#​6642](https://togithub.com/psf/requests/issues/6642)) - Requests has officially dropped support for PyPy 3.7 and 3.8 ([#​6641](https://togithub.com/psf/requests/issues/6641)) **Documentation** - Various typo fixes and doc improvements. **Packaging** - Requests has started adopting some modern packaging practices. The source files for the projects (formerly `requests`) is now located in `src/requests` in the Requests sdist. ([#​6506](https://togithub.com/psf/requests/issues/6506)) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system using `hatchling`. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format. </details> --- ### 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 this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/googleapis/sdk-platform-java). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
The issue described in psf/requests#6655 has been assigned as a security issue. While unlikely to be exploited in our usage, update to the current release to fix it. Reported-by: GitHub dependabot Signed-off-by: Tom Rini <trini@konsulko.com>
Bumps requests (pip) from 2.32.0 to resolve identified security vulnerability in 3rd party dependency. When making requests through a Requests Session, if the first request is made with verify=False to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of verify. This behavior will continue for the lifecycle of the connection in the connection pool. Upgrading will resolve this issue. Refer to psf/requests#6655
…14022) Bumps requests (pip) from 2.32.0 to resolve identified security vulnerability in 3rd party dependency. When making requests through a Requests Session, if the first request is made with verify=False to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of verify. This behavior will continue for the lifecycle of the connection in the connection pool. Upgrading will resolve this issue. Refer to psf/requests#6655
The issue described in psf/requests#6655 has been assigned as a security issue. While unlikely to be exploited in our usage, update to the current release to fix it. Furthermore, upstream has now moved on to v2.23.2 as the release to use which has all of the issues resolved. Reported-by: GitHub dependabot Signed-off-by: Tom Rini <trini@konsulko.com> --- Changes in v2: - Switch from 2.23.0 to 2.23.2 to use most recent upstream.
The issue described in psf/requests#6655 has been assigned as a security issue. While unlikely to be exploited in our usage, update to the current release to fix it. Furthermore, upstream has now moved on to v2.23.2 as the release to use which has all of the issues resolved. Reported-by: GitHub dependabot Signed-off-by: Tom Rini <trini@konsulko.com>
…3032) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [requests](https://requests.readthedocs.io) ([source](https://togithub.com/psf/requests), [changelog](https://togithub.com/psf/requests/blob/master/HISTORY.md)) | `>=2.31.0,<2.32` -> `>=2.32.2,<2.33` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [CVE-2024-35195](https://togithub.com/psf/requests/security/advisories/GHSA-9wx4-h78v-vm56) When making requests through a Requests `Session`, if the first request is made with `verify=False` to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value of `verify`. This behavior will continue for the lifecycle of the connection in the connection pool. ### Remediation Any of these options can be used to remediate the current issue, we highly recommend upgrading as the preferred mitigation. * Upgrade to `requests>=2.32.0`. * For `requests<2.32.0`, avoid setting `verify=False` for the first request to a host while using a Requests Session. * For `requests<2.32.0`, call `close()` on `Session` objects to clear existing connections if `verify=False` is used. ### Related Links * [https://github.com/psf/requests/pull/6655](https://togithub.com/psf/requests/pull/6655) --- ### Release Notes <details> <summary>psf/requests (requests)</summary> ### [`v2.32.2`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2322-2024-05-21) [Compare Source](https://togithub.com/psf/requests/compare/v2.32.1...v2.32.2) **Deprecations** - To provide a more stable migration for custom HTTPAdapters impacted by the CVE changes in 2.32.0, we've renamed `_get_connection` to a new public API, `get_connection_with_tls_context`. Existing custom HTTPAdapters will need to migrate their code to use this new API. `get_connection` is considered deprecated in all versions of Requests>=2.32.0. A minimal (2-line) example has been provided in the linked PR to ease migration, but we strongly urge users to evaluate if their custom adapter is subject to the same issue described in CVE-2024-35195. ([#​6710](https://togithub.com/psf/requests/issues/6710)) ### [`v2.32.1`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2321-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.32.0...v2.32.1) **Bugfixes** - Add missing test certs to the sdist distributed on PyPI. ### [`v2.32.0`](https://togithub.com/psf/requests/blob/HEAD/HISTORY.md#2320-2024-05-20) [Compare Source](https://togithub.com/psf/requests/compare/v2.31.0...v2.32.0) **Security** - Fixed an issue where setting `verify=False` on the first request from a Session will cause subsequent requests to the *same origin* to also ignore cert verification, regardless of the value of `verify`. (GHSA-9wx4-h78v-vm56) **Improvements** - `verify=True` now reuses a global SSLContext which should improve request time variance between first and subsequent requests. It should also minimize certificate load time on Windows systems when using a Python version built with OpenSSL 3.x. ([#​6667](https://togithub.com/psf/requests/issues/6667)) - Requests now supports optional use of character detection (`chardet` or `charset_normalizer`) when repackaged or vendored. This enables `pip` and other projects to minimize their vendoring surface area. The `Response.text()` and `apparent_encoding` APIs will default to `utf-8` if neither library is present. ([#​6702](https://togithub.com/psf/requests/issues/6702)) **Bugfixes** - Fixed bug in length detection where emoji length was incorrectly calculated in the request content-length. ([#​6589](https://togithub.com/psf/requests/issues/6589)) - Fixed deserialization bug in JSONDecodeError. ([#​6629](https://togithub.com/psf/requests/issues/6629)) - Fixed bug where an extra leading `/` (path separator) could lead urllib3 to unnecessarily reparse the request URI. ([#​6644](https://togithub.com/psf/requests/issues/6644)) **Deprecations** - Requests has officially added support for CPython 3.12 ([#​6503](https://togithub.com/psf/requests/issues/6503)) - Requests has officially added support for PyPy 3.9 and 3.10 ([#​6641](https://togithub.com/psf/requests/issues/6641)) - Requests has officially dropped support for CPython 3.7 ([#​6642](https://togithub.com/psf/requests/issues/6642)) - Requests has officially dropped support for PyPy 3.7 and 3.8 ([#​6641](https://togithub.com/psf/requests/issues/6641)) **Documentation** - Various typo fixes and doc improvements. **Packaging** - Requests has started adopting some modern packaging practices. The source files for the projects (formerly `requests`) is now located in `src/requests` in the Requests sdist. ([#​6506](https://togithub.com/psf/requests/issues/6506)) - Starting in Requests 2.33.0, Requests will migrate to a PEP 517 build system using `hatchling`. This should not impact the average user, but extremely old versions of packaging utilities may have issues with the new packaging format. </details> --- ### 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/libretime/libretime). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJweXRob24iXX0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Previously, if someone made a request with
verify=Falsethen made a request where they expected verification to be enabled to the same host, they would potentially reuse a connection where TLS had not been verified.This fixes that issue.