CVE-2026-97687
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Passive
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.6
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
CVE-2026-97687- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-295, CWE-440
- Updated
- 2026-11-02
EUVDEUVD-2026-89000
7.6
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
EUVD-2026-89000- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-8988-9cw3-xx77
7.6
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
Impact
urllib3 supports configuring TLS independently for an HTTPS proxy and the target server.
proxy_ssl_context, proxy_assert_hostname, and proxy_assert_fingerprint configure the TLS connection to the proxy. ssl_context and the other target-specific TLS parameters configure the connection to the target server.
In urllib3 versions 1.26.0 through 2.7.0, these configurations were not consistently separated. Depending on the proxy mode, urllib3 could:
- Ignore
proxy_ssl_contextand use the target server's SSL context for the TLS connection to an HTTPS forwarding proxy. - Override the HTTPS proxy's certificate-verification policy with the target server's certificate-verification policy.
- Apply target-specific SNI, hostname assertions, certificate fingerprint assertions, or TLS client credentials to the TLS connection to an HTTPS forwarding proxy.
In particular, configuring cert_reqs="CERT_NONE" for a target server could overwrite the verify_mode of the SSL context configured for the HTTPS proxy. This modification occurred in place and persisted on the context object, potentially disabling proxy certificate verification for later connections that reused the same context.
An attacker able to intercept the connection to an HTTPS proxy may be able to impersonate the proxy when the effective proxy TLS configuration disables certificate verification or otherwise accepts the attacker's certificate. This may occur, for example, when the target server's trust or identity policy is incorrectly applied to the proxy connection.
When HTTPS forwarding is enabled, an impersonated proxy can observe or modify forwarded requests and responses, potentially exposing credentials, authentication tokens, request bodies, response data, and other sensitive information.
A TLS client certificate intended for the target server may also be presented to the proxy or to an attacker impersonating it. This can disclose the client's identity and provide proof of possession of the corresponding private key. The private key itself is not transmitted during the TLS handshake.
In CONNECT tunneling mode, impersonating the HTTPS proxy does not by itself defeat the separate end-to-end TLS connection between the client and the target server.
Affected Usages
Code using urllib3 versions 1.26.0 through 2.7.0 may be affected in any of the following cases.
1. The target SSL context is used for an HTTPS forwarding proxy
HTTPS requests are forwarded through an HTTPS proxy with use_forwarding_for_https=True, and proxy_ssl_context is configured for the proxy.
urllib3 may ignore proxy_ssl_context and use the target server's ssl_context for the proxy TLS handshake. The proxy may therefore be verified using the target server's trust and certificate policy instead of the policy explicitly configured for the proxy.
2. The target verification policy overrides the proxy policy
An HTTPS proxy is configured with proxy_ssl_context, while the target server uses a different certificate-verification policy.
urllib3 may apply the target server's cert_reqs value to the proxy SSL context. For example, setting cert_reqs="CERT_NONE" for the target server may also disable certificate verification for the HTTPS proxy, even when proxy_ssl_context was configured to require verification.
This issue can affect the TLS connection to an HTTPS proxy in both forwarding and CONNECT tunneling configurations.
3. A mutated proxy SSL context is reused
The same SSL context is reused as proxy_ssl_context across multiple connections, and certificate verification is disabled for one target server.
urllib3 may modify the proxy SSL context's verify_mode in place. Later connections that reuse the same context may therefore connect to the HTTPS proxy without certificate verification.
4. Target-specific TLS identity or credentials are applied to the proxy
HTTPS requests are forwarded through an HTTPS proxy with…
- Record
GHSA-8988-9cw3-xx77- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-295, CWE-440
- Updated
- 2026-11-02
NVD
7.6
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
CVE-2026-97687- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Weakness
- CWE-295, CWE-440
- Updated
- 2026-11-02
OSVBELL-CVE-2026-97687
8.1
- Record
BELL-CVE-2026-97687- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSV
7.6
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
CVE-2026-97687- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-295, CWE-440
- Updated
- 2026-11-02
Show 41 moreShow less
OSVDEBIAN-CVE-2026-97687
8.1
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
DEBIAN-CVE-2026-97687- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVGHSA-8988-9cw3-xx77
7.6
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
Impact
urllib3 supports configuring TLS independently for an HTTPS proxy and the target server.
proxy_ssl_context, proxy_assert_hostname, and proxy_assert_fingerprint configure the TLS connection to the proxy. ssl_context and the other target-specific TLS parameters configure the connection to the target server.
In urllib3 versions 1.26.0 through 2.7.0, these configurations were not consistently separated. Depending on the proxy mode, urllib3 could:
- Ignore
proxy_ssl_contextand use the target server's SSL context for the TLS connection to an HTTPS forwarding proxy. - Override the HTTPS proxy's certificate-verification policy with the target server's certificate-verification policy.
- Apply target-specific SNI, hostname assertions, certificate fingerprint assertions, or TLS client credentials to the TLS connection to an HTTPS forwarding proxy.
In particular, configuring cert_reqs="CERT_NONE" for a target server could overwrite the verify_mode of the SSL context configured for the HTTPS proxy. This modification occurred in place and persisted on the context object, potentially disabling proxy certificate verification for later connections that reused the same context.
An attacker able to intercept the connection to an HTTPS proxy may be able to impersonate the proxy when the effective proxy TLS configuration disables certificate verification or otherwise accepts the attacker's certificate. This may occur, for example, when the target server's trust or identity policy is incorrectly applied to the proxy connection.
When HTTPS forwarding is enabled, an impersonated proxy can observe or modify forwarded requests and responses, potentially exposing credentials, authentication tokens, request bodies, response data, and other sensitive information.
A TLS client certificate intended for the target server may also be presented to the proxy or to an attacker impersonating it. This can disclose the client's identity and provide proof of possession of the corresponding private key. The private key itself is not transmitted during the TLS handshake.
In CONNECT tunneling mode, impersonating the HTTPS proxy does not by itself defeat the separate end-to-end TLS connection between the client and the target server.
Affected Usages
Code using urllib3 versions 1.26.0 through 2.7.0 may be affected in any of the following cases.
1. The target SSL context is used for an HTTPS forwarding proxy
HTTPS requests are forwarded through an HTTPS proxy with use_forwarding_for_https=True, and proxy_ssl_context is configured for the proxy.
urllib3 may ignore proxy_ssl_context and use the target server's ssl_context for the proxy TLS handshake. The proxy may therefore be verified using the target server's trust and certificate policy instead of the policy explicitly configured for the proxy.
2. The target verification policy overrides the proxy policy
An HTTPS proxy is configured with proxy_ssl_context, while the target server uses a different certificate-verification policy.
urllib3 may apply the target server's cert_reqs value to the proxy SSL context. For example, setting cert_reqs="CERT_NONE" for the target server may also disable certificate verification for the HTTPS proxy, even when proxy_ssl_context was configured to require verification.
This issue can affect the TLS connection to an HTTPS proxy in both forwarding and CONNECT tunneling configurations.
3. A mutated proxy SSL context is reused
The same SSL context is reused as proxy_ssl_context across multiple connections, and certificate verification is disabled for one target server.
urllib3 may modify the proxy SSL context's verify_mode in place. Later connections that reuse the same context may therefore connect to the HTTPS proxy without certificate verification.
4. Target-specific TLS identity or credentials are applied to the proxy
HTTPS requests are forwarded through an HTTPS proxy with…
- Record
GHSA-8988-9cw3-xx77- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-295, CWE-440
- Updated
- 2026-11-02
OSVOESA-2026-4624
7.6
python-urllib3 security update
Sanity-friendly HTTP client for Python
Security Fix(es):
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.(CVE-2026-97687)
- Record
OESA-2026-4624- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-4625
8.9
python-urllib3 security update
Sanity-friendly HTTP client for Python
Security Fix(es):
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.(CVE-2026-97687)
urllib3 is an HTTP client library for Python. From 1.10.3 until 2.8.0, the HTTPResponse.read_chunked and HTTPResponse.stream methods can allocate unbounded memory because the streaming chunk parser buffers the chunk-size field until newline or EOF without a length bound. The trigger is that a malicious server returns Transfer-Encoding: chunked followed by a very long run of bytes without a newline. The attack mechanism is that a malicious HTTP server sends a very long unterminated chunk-size line. The impact is that unbounded memory allocation can exhaust the client process. This issue is fixed in version 2.8.0.(CVE-2026-97689)
- Record
OESA-2026-4625- CVSS 4.0
- 8.9 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-4626
7.6
python-urllib3 security update
Sanity-friendly HTTP client for Python
Security Fix(es):
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.(CVE-2026-97687)
- Record
OESA-2026-4626- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-4627
7.6
python-urllib3 security update
Sanity-friendly HTTP client for Python
Security Fix(es):
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.(CVE-2026-97687)
- Record
OESA-2026-4627- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVPYSEC-2026-4175
7.6
urllib3: HTTPS proxy TLS configuration may be ignored or overridden
Impact
urllib3 supports configuring TLS independently for an HTTPS proxy and the target server.
proxy_ssl_context, proxy_assert_hostname, and proxy_assert_fingerprint configure the TLS connection to the proxy. ssl_context and the other target-specific TLS parameters configure the connection to the target server.
In urllib3 versions 1.26.0 through 2.7.0, these configurations were not consistently separated. Depending on the proxy mode, urllib3 could:
- Ignore
proxy_ssl_contextand use the target server's SSL context for the TLS connection to an HTTPS forwarding proxy. - Override the HTTPS proxy's certificate-verification policy with the target server's certificate-verification policy.
- Apply target-specific SNI, hostname assertions, certificate fingerprint assertions, or TLS client credentials to the TLS connection to an HTTPS forwarding proxy.
In particular, configuring cert_reqs="CERT_NONE" for a target server could overwrite the verify_mode of the SSL context configured for the HTTPS proxy. This modification occurred in place and persisted on the context object, potentially disabling proxy certificate verification for later connections that reused the same context.
An attacker able to intercept the connection to an HTTPS proxy may be able to impersonate the proxy when the effective proxy TLS configuration disables certificate verification or otherwise accepts the attacker's certificate. This may occur, for example, when the target server's trust or identity policy is incorrectly applied to the proxy connection.
When HTTPS forwarding is enabled, an impersonated proxy can observe or modify forwarded requests and responses, potentially exposing credentials, authentication tokens, request bodies, response data, and other sensitive information.
A TLS client certificate intended for the target server may also be presented to the proxy or to an attacker impersonating it. This can disclose the client's identity and provide proof of possession of the corresponding private key. The private key itself is not transmitted during the TLS handshake.
In CONNECT tunneling mode, impersonating the HTTPS proxy does not by itself defeat the separate end-to-end TLS connection between the client and the target server.
Affected Usages
Code using urllib3 versions 1.26.0 through 2.7.0 may be affected in any of the following cases.
1. The target SSL context is used for an HTTPS forwarding proxy
HTTPS requests are forwarded through an HTTPS proxy with use_forwarding_for_https=True, and proxy_ssl_context is configured for the proxy.
urllib3 may ignore proxy_ssl_context and use the target server's ssl_context for the proxy TLS handshake. The proxy may therefore be verified using the target server's trust and certificate policy instead of the policy explicitly configured for the proxy.
2. The target verification policy overrides the proxy policy
An HTTPS proxy is configured with proxy_ssl_context, while the target server uses a different certificate-verification policy.
urllib3 may apply the target server's cert_reqs value to the proxy SSL context. For example, setting cert_reqs="CERT_NONE" for the target server may also disable certificate verification for the HTTPS proxy, even when proxy_ssl_context was configured to require verification.
This issue can affect the TLS connection to an HTTPS proxy in both forwarding and CONNECT tunneling configurations.
3. A mutated proxy SSL context is reused
The same SSL context is reused as proxy_ssl_context across multiple connections, and certificate verification is disabled for one target server.
urllib3 may modify the proxy SSL context's verify_mode in place. Later connections that reuse the same context may therefore connect to the HTTPS proxy without certificate verification.
4. Target-specific TLS identity or credentials are applied to the proxy
HTTPS requests are forwarded through an HTTPS proxy with…
- Record
PYSEC-2026-4175- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
OSVRHSA-2026:69612
7.5
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:69612- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2026:84577
7.5
Red Hat Security Advisory: python3.14-urllib3 security update
- Record
RHSA-2026:84577- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRHSA-2026:84578
7.5
Red Hat Security Advisory: python3.14-urllib3 security update
- Record
RHSA-2026:84578- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:84577
7.5
Important: python3.14-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
-
urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
-
urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:84577- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:84578
7.5
Important: python3.14-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
-
urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
-
urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:84578- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:85929
7.5
Important: python3.12-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
-
urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
-
urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:85929- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:85930
7.5
Important: python-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
-
urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
-
urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:85930- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-03
OSVRLSA-2026:90494
7.5
Important: python-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
-
urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
-
urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:90494- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVRLSA-2026:92474
7.5
Important: python3.12-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
-
urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
-
urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
RLSA-2026:92474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-97687
7.6
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
UBUNTU-CVE-2026-97687- CVSS 4.0
- 7.6 High
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
OSVALSA-2026:84577 No score
Important: python3.14-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
- urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:84577- Updated
- 2026-11-02
OSVALSA-2026:84578 No score
Important: python3.14-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
- urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:84578- Updated
- 2026-11-02
OSVALSA-2026:85929 No score
Important: python3.12-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
- urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:85929- Updated
- 2026-11-02
OSVALSA-2026:85930 No score
Important: python-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
- urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:85930- Updated
- 2026-11-02
OSVALSA-2026:90494 No score
Important: python-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
- urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:90494- Updated
- 2026-11-02
OSVALSA-2026:92474 No score
Important: python3.12-urllib3 security update
Python is an interpreted, interactive, object-oriented programming language, which includes modules, classes, exceptions, very high level dynamic data types and dynamic typing. Python supports interfaces to many system calls and libraries, as well as to various windowing systems.
Security Fix(es):
- urllib3: urllib3: Denial of Service via unbounded memory allocation in chunk parser (CVE-2026-97689)
- urllib3: urllib3: Traffic interception via HTTPS proxy TLS configuration override (CVE-2026-97687)
For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.
- Record
ALSA-2026:92474- Updated
- 2026-11-02
OSVAZL-105651 No score
CVE-2026-97687 affecting package python-pip 24.2-10
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
AZL-105651- Updated
- 2026-11-02
OSVAZL-105663 No score
CVE-2026-97687 affecting package python-urllib3 2.0.7-6
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
AZL-105663- Updated
- 2026-11-02
OSVAZL-105678 No score
CVE-2026-97687 affecting package python-virtualenv 20.36.1-6
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
AZL-105678- Updated
- 2026-11-02
OSVAZL-105693 No score
CVE-2026-97687 affecting package python3 3.12.14-2
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
AZL-105693- Updated
- 2026-11-02
OSVAZL-105909 No score
CVE-2026-97687 affecting package tensorflow 2.16.1-11
urllib3 is an HTTP client library for Python. From 1.26.0 until 2.8.0, the proxy_ssl_context, proxy_assert_hostname, proxy_assert_fingerprint, ssl_context, cert_reqs, verify_mode, use_forwarding_for_https=True, and CERT_NONE configuration paths fail to remain separated because target-server TLS settings are incorrectly applied to the HTTPS proxy connection. The trigger is that an application uses an HTTPS proxy and configures target-server TLS settings that must remain separate from the proxy TLS handshake, including HTTPS forwarding with target-specific identity or credentials. Applying cert_reqs=CERT_NONE can overwrite proxy_ssl_context.verify_mode in place, and the mutation persists so later connections reusing the same context may connect to the HTTPS proxy without certificate verification. The attack mechanism is that an attacker intercepts and impersonates the HTTPS proxy after the effective proxy policy accepts the attacker's certificate. The impact is that the attacker can observe or modify forwarded traffic or receive a target TLS client certificate, while CONNECT tunneling still preserves the separate end-to-end target TLS connection. This issue is fixed in version 2.8.0.
- Record
AZL-105909- Updated
- 2026-11-02
OSVCLSA-2026-1790834041 No score
TuxCare security update for urllib3 (2 CVEs)
TuxCare rebuilt urllib3 to address 2 CVEs. Fixed in 2.0.7.post4+tuxcare.
- Record
CLSA-2026-1790834041- Updated
- 2026-11-02
OSVCLSA-2026-1790847237 No score
TuxCare security update for urllib3 (2 CVEs)
TuxCare rebuilt urllib3 to address 2 CVEs. Fixed in 1.26.20.post5+tuxcare.
- Record
CLSA-2026-1790847237- Updated
- 2026-11-02
OSVCLSA-2026-1791264856 No score
TuxCare security update for urllib3 (2 CVEs)
TuxCare rebuilt urllib3 to address 2 CVEs. Fixed in 1.26.4.post6+tuxcare.
- Record
CLSA-2026-1791264856- Updated
- 2026-11-02
OSVCLSA-2026-1791270635 No score
TuxCare security update for urllib3 (5 CVEs)
TuxCare rebuilt urllib3 to address 5 CVEs. Fixed in 2.5.0.post2+tuxcare.
- Record
CLSA-2026-1791270635- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12044-1 No score
python313-urllib3-2.8.0-1.1 on GA media
These are all security issues fixed in the python313-urllib3-2.8.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12044-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12119-1 No score
python313-urllib3_1-1.26.20-8.1 on GA media
These are all security issues fixed in the python313-urllib3_1-1.26.20-8.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12119-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:22071-1 No score
Security update for python-urllib3
This update for python-urllib3 fixes the following issues:
- CVE-2026-97687: traffic interception due to possible HTTPS proxy TLS configuration override (bsc#1283908).
- CVE-2026-97688: denial of service due to infinite loop during chunked Deflate decoding (bsc#1283909).
- CVE-2026-97689: denial of service due to unbounded memory allocation in chunk parser (bsc#1283910).
- Record
openSUSE-SU-2026:22071-1- Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-97687 No score
CVE-2026-97687 in urllib3 - Patched by Root
Root has patched CVE-2026-97687 in the urllib3 package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-97687- Updated
- 2026-11-03
OSVSUSE-SU-2026:24125-1 No score
Security update for python-urllib3
This update for python-urllib3 fixes the following issues:
- CVE-2026-97687: traffic interception due to possible HTTPS proxy TLS configuration override (bsc#1283908).
- CVE-2026-97688: denial of service due to infinite loop during chunked Deflate decoding (bsc#1283909).
- CVE-2026-97689: denial of service due to unbounded memory allocation in chunk parser (bsc#1283910).
- Record
SUSE-SU-2026:24125-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:24217-1 No score
Security update for python-urllib3
This update for python-urllib3 fixes the following issues:
- CVE-2026-97687: traffic interception due to possible HTTPS proxy TLS configuration override (bsc#1283908).
- CVE-2026-97688: denial of service due to infinite loop during chunked Deflate decoding (bsc#1283909).
- CVE-2026-97689: denial of service due to unbounded memory allocation in chunk parser (bsc#1283910).
- Record
SUSE-SU-2026:24217-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4704-1 No score
Security update for python-urllib3
This update for python-urllib3 fixes the following issues:
- CVE-2026-97687: traffic interception due to possible HTTPS proxy TLS configuration override (bsc#1283908).
- CVE-2026-97688: denial of service due to infinite loop during chunked Deflate decoding (bsc#1283909).
- CVE-2026-97689: denial of service due to unbounded memory allocation in chunk parser (bsc#1283910).
- Record
SUSE-SU-2026:4704-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:4948-1 No score
Security update for python-urllib3_1
This update for python-urllib3_1 fixes the following issues:
- CVE-2026-97687: traffic interception due to possible HTTPS proxy TLS configuration override (bsc#1283908).
- CVE-2026-97688: denial of service due to infinite loop during chunked Deflate decoding (bsc#1283909).
- CVE-2026-97689: denial of service due to unbounded memory allocation in chunk parser (bsc#1283910).
- Record
SUSE-SU-2026:4948-1- Updated
- 2026-11-02
OSVUSN-8926-1 No score
python-urllib3 vulnerabilities
Yu-Fu Fu, Seth Larson and Yonatan Magier discovered that urllib3 did not correctly handle certain certificate validations. An attacker could possibly use this issue to observe or modify forwarded traffic. This issue only affected Ubuntu 26.04 LTS. (CVE-2026-97687)
Martin Desrumaux discovered that urllib3 did not correctly handle decoding certain deflate responses. An attacker could possibly use this issue to cause a denial of service. This issue only affected Ubuntu 26.04 LTS. (CVE-2026-97688)
It was discovered that urllib3 did not correctly handle certain memory operations. An attacker could possibly use this issue to cause a denial of service. (CVE-2026-97689)
- Record
USN-8926-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
urllib3PyPI |
1.26.0 up to 2.8.0 | 2.8.0 |
python3.14-urllib3AlmaLinux:9 From an advisory covering 2 CVEs |
before 2.6.3-2.el9_8.6 | 2.6.3-2.el9_8.6 |
python3.14-urllib3AlmaLinux:10 From an advisory covering 2 CVEs |
before 2.6.3-2.el10_2.6 | 2.6.3-2.el10_2.6 |
python3.12-urllib3AlmaLinux:9 From an advisory covering 2 CVEs |
before 1.26.19-3.el9_8.2 | 1.26.19-3.el9_8.2 |
python3-urllib3AlmaLinux:10 From an advisory covering 2 CVEs |
before 1.26.19-4.el10_2.2 | 1.26.19-4.el10_2.2 |
python3-urllib3AlmaLinux:9 From an advisory covering 2 CVEs |
before 1.26.5-8.el9_8.2 | 1.26.5-8.el9_8.2 |
python3.12-urllib3AlmaLinux:8 From an advisory covering 2 CVEs |
before 1.26.19-5.el8_10 | 1.26.19-5.el8_10 |
python-pipAzure Linux:3 |
through 24.2-10 | None known |
python-urllib3Azure Linux:3 |
through 2.0.7-6 | None known |
python-virtualenvAzure Linux:3 |
through 20.36.1-6 | None known |
Show 67 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python3Azure Linux:3 |
through 3.12.14-2 | None known |
tensorflowAzure Linux:3 |
through 2.16.1-11 | None known |
py3-urllib3Alpaquita:stream |
1.26.12-r1 up to 2.8.0-r0 | 2.8.0-r0 |
urllib3TuxCare:PyPI From an advisory covering 2 CVEs |
2.0.7 up to 2.0.7.post4+tuxcare, plus listed versions 2.0.7.post1+tuxcare2.0.7.post2+tuxcare2.0.7.post3+tuxcare |
2.0.7.post4+tuxcare |
urllib3TuxCare:PyPI From an advisory covering 2 CVEs |
1.26.20 up to 1.26.20.post5+tuxcare, plus listed versions 1.26.20.post1+tuxcare1.26.20.post2+tuxcare1.26.20.post3+tuxcare1.26.20.post4+tuxcare |
1.26.20.post5+tuxcare |
urllib3TuxCare:PyPI From an advisory covering 2 CVEs |
1.26.4 up to 1.26.4.post6+tuxcare, plus listed versions 1.26.4.post1+tuxcare1.26.4.post2+tuxcare1.26.4.post3+tuxcare1.26.4.post4+tuxcare1.26.4.post5+tuxcare |
1.26.4.post6+tuxcare |
urllib3TuxCare:PyPI From an advisory covering 5 CVEs |
2.5.0 up to 2.5.0.post2+tuxcare, plus listed versions 2.5.0.post1+tuxcare |
2.5.0.post2+tuxcare |
python-urllib3Debian:12 |
All versions, plus listed versions 1.26.12-11.26.12-1+deb12u11.26.12-1+deb12u21.26.12-1+deb12u31.26.12-1+deb12u4 Show 23 moreShow less1.26.16-11.26.17-11.26.18-11.26.18-22.0.7-12.0.7-22.2.3-12.2.3-22.2.3-32.2.3-42.3.0-12.3.0-22.3.0-32.5.0-12.5.0-1.12.5.0-22.6.3-12.6.3-22.7.0-12.7.0-22.7.0-32.8.0-12.8.0-2 |
None known |
python-urllib3Debian:13 |
All versions, plus listed versions 2.3.0-32.3.0-3+deb13u12.3.0-3+deb13u22.5.0-12.5.0-1.1 Show 8 moreShow less2.5.0-22.6.3-12.6.3-22.7.0-12.7.0-22.7.0-32.8.0-12.8.0-2 |
None known |
python-urllib3Debian:14 |
before 2.8.0-1, plus listed versions 2.3.0-32.5.0-12.5.0-1.12.5.0-22.6.3-1 Show 4 moreShow less2.6.3-22.7.0-12.7.0-22.7.0-3 |
2.8.0-1 |
urllib3PyPI |
1.26.0 up to 2.8.0, plus listed versions 1.26.11.26.101.26.111.26.121.26.13 Show 40 moreShow less1.26.141.26.151.26.161.26.171.26.181.26.191.26.21.26.201.26.31.26.41.26.51.26.61.26.71.26.81.26.92.0.02.0.0a12.0.0a22.0.0a32.0.0a42.0.12.0.22.0.32.0.42.0.52.0.62.0.72.1.02.2.02.2.12.2.22.2.32.3.02.4.02.5.02.6.02.6.12.6.22.6.32.7.0 |
2.8.0 |
python-urllib3openEuler:24.03-LTS-SP4 |
before 1.26.18-11.oe2403sp4 | 1.26.18-11.oe2403sp4 |
python-urllib3openEuler:22.03-LTS-SP4 From an advisory covering 2 CVEs |
before 1.26.12-16.oe2203sp4 | 1.26.12-16.oe2203sp4 |
python-urllib3openEuler:24.03-LTS-SP1 |
before 1.26.18-11.oe2403sp1 | 1.26.18-11.oe2403sp1 |
python-urllib3openEuler:24.03-LTS-SP3 |
before 1.26.18-11.oe2403sp3 | 1.26.18-11.oe2403sp3 |
python-urllib3Red Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:2.8.0-1.hum1 | 0:2.8.0-1.hum1 |
python3-urllib3+brotliRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:2.8.0-1.hum1 | 0:2.8.0-1.hum1 |
python3-urllib3+h2Red Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:2.8.0-1.hum1 | 0:2.8.0-1.hum1 |
python3-urllib3+socksRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:2.8.0-1.hum1 | 0:2.8.0-1.hum1 |
python3-urllib3+zstdRed Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:2.8.0-1.hum1 | 0:2.8.0-1.hum1 |
python3-urllib3Red Hat:hummingbird:1 From an advisory covering 3 CVEs |
before 0:2.8.0-1.hum1 | 0:2.8.0-1.hum1 |
python3.14-urllib3Red Hat:enterprise_linux:9::appstream From an advisory covering 2 CVEs |
before 0:2.6.3-2.el9_8.6 | 0:2.6.3-2.el9_8.6 |
python3.14-urllib3Red Hat:enterprise_linux:10.2 From an advisory covering 2 CVEs |
before 0:2.6.3-2.el10_2.6 | 0:2.6.3-2.el10_2.6 |
python3.14-urllib3Rocky Linux:9 From an advisory covering 2 CVEs |
before 0:2.6.3-2.el9_8.6 | 0:2.6.3-2.el9_8.6 |
python3.14-urllib3Rocky Linux:10 From an advisory covering 2 CVEs |
before 0:2.6.3-2.el10_2.6 | 0:2.6.3-2.el10_2.6 |
python3.12-urllib3Rocky Linux:9 From an advisory covering 2 CVEs |
before 0:1.26.19-3.el9_8.2 | 0:1.26.19-3.el9_8.2 |
python-urllib3Rocky Linux:10 From an advisory covering 2 CVEs |
before 0:1.26.19-4.el10_2.2 | 0:1.26.19-4.el10_2.2 |
python-urllib3Rocky Linux:9 From an advisory covering 2 CVEs |
before 0:1.26.5-8.el9_8.2 | 0:1.26.5-8.el9_8.2 |
python3.12-urllib3Rocky Linux:8 From an advisory covering 2 CVEs |
before 0:1.26.19-5.el8_10 | 0:1.26.19-5.el8_10 |
urllib3Root:PyPI |
before 1.26.18+aikido.5 | 1.26.18+aikido.52.7.0+aikido.12.2.3+aikido.61.26.5+aikido.111.26.12+aikido.62.6.3+aikido.32.6.2+aikido.41.26.14+aikido.101.26.6+aikido.71.26.8+aikido.71.26.7+aikido.71.26.15+aikido.71.26.13+aikido.81.26.19+aikido.71.26.20+aikido.51.26.16+aikido.92.5.0+aikido.72.5.0+aikido.81.26.9+aikido.102.4.0+aikido.8 |
python-urllib3SUSE:Linux Micro 6.2 From an advisory covering 3 CVEs |
before 2.5.0-160000.8.1 | 2.5.0-160000.8.1 |
python-urllib3SUSE:Linux Enterprise Server 16.0 From an advisory covering 3 CVEs |
before 2.5.0-160000.8.1 | 2.5.0-160000.8.1 |
python-urllib3SUSE:Linux Enterprise Server for SAP applications 16.0 From an advisory covering 3 CVEs |
before 2.5.0-160000.8.1 | 2.5.0-160000.8.1 |
python-urllib3SUSE:Linux Enterprise Module for Public Cloud 15 SP4 From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Module for Python 3 15 SP7 From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3SUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 3 CVEs |
before 2.0.7-150400.7.36.1 | 2.0.7-150400.7.36.1 |
python-urllib3_1SUSE:Linux Enterprise Module for Python 3 15 SP7 From an advisory covering 3 CVEs |
before 1.26.18-150600.3.14.1 | 1.26.18-150600.3.14.1 |
python-urllib3_1SUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 3 CVEs |
before 1.26.18-150600.3.14.1 | 1.26.18-150600.3.14.1 |
python-urllib3_1SUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 3 CVEs |
before 1.26.18-150600.3.14.1 | 1.26.18-150600.3.14.1 |
python-pipUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 1.4.1-21.5.4-11.5.4-1ubuntu11.5.4-1ubuntu31.5.4-1ubuntu4 Show 5 moreShow less1.5.4-1ubuntu4+esm11.5.4-1ubuntu4+esm21.5.4-1ubuntu4+esm31.5.4-1ubuntu4+esm41.5.4-1ubuntu4+esm5 |
None known |
python-pipUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.5.6-7ubuntu11.5.6-7ubuntu28.0.2-78.0.3-18.0.3-2 Show 17 moreShow less8.1.0-18.1.0-28.1.1-18.1.1-28.1.1-2ubuntu0.18.1.1-2ubuntu0.28.1.1-2ubuntu0.48.1.1-2ubuntu0.68.1.1-2ubuntu0.6+esm28.1.1-2ubuntu0.6+esm38.1.1-2ubuntu0.6+esm48.1.1-2ubuntu0.6+esm58.1.1-2ubuntu0.6+esm68.1.1-2ubuntu0.6+esm88.1.1-2ubuntu0.6+esm108.1.1-2ubuntu0.6+esm118.1.1-2ubuntu0.6+esm12 |
None known |
python-pipUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 9.0.1-29.0.1-2.3~ubuntu19.0.1-2.3~ubuntu1.18.04.19.0.1-2.3~ubuntu1.18.04.29.0.1-2.3~ubuntu1.18.04.3 Show 15 moreShow less9.0.1-2.3~ubuntu1.18.04.49.0.1-2.3~ubuntu1.18.04.59.0.1-2.3~ubuntu1.18.04.5+esm29.0.1-2.3~ubuntu1.18.04.5+esm39.0.1-2.3~ubuntu1.18.04.69.0.1-2.3~ubuntu1.18.04.6+esm19.0.1-2.3~ubuntu1.18.04.79.0.1-2.3~ubuntu1.18.04.7+esm19.0.1-2.3~ubuntu1.18.04.89.0.1-2.3~ubuntu1.18.04.8+esm19.0.1-2.3~ubuntu1.18.04.8+esm29.0.1-2.3~ubuntu1.18.04.8+esm49.0.1-2.3~ubuntu1.18.04.8+esm69.0.1-2.3~ubuntu1.18.04.8+esm79.0.1-2.3~ubuntu1.18.04.8+esm8 |
None known |
python-pipUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 18.1-518.1-5build118.1-5ubuntu120.0.2-220.0.2-4 Show 16 moreShow less20.0.2-520.0.2-5ubuntu120.0.2-5ubuntu1.120.0.2-5ubuntu1.320.0.2-5ubuntu1.420.0.2-5ubuntu1.520.0.2-5ubuntu1.620.0.2-5ubuntu1.720.0.2-5ubuntu1.820.0.2-5ubuntu1.920.0.2-5ubuntu1.1020.0.2-5ubuntu1.10+esm220.0.2-5ubuntu1.1120.0.2-5ubuntu1.11+esm220.0.2-5ubuntu1.11+esm320.0.2-5ubuntu1.11+esm4 |
None known |
python-urllib3Ubuntu:22.04:LTS |
All versions, plus listed versions 1.26.5-1~exp11.26.5-1~exp1ubuntu0.11.26.5-1~exp1ubuntu0.21.26.5-1~exp1ubuntu0.31.26.5-1~exp1ubuntu0.4 Show 4 moreShow less1.26.5-1~exp1ubuntu0.51.26.5-1~exp1ubuntu0.61.26.5-1~exp1ubuntu0.71.26.5-1~exp1ubuntu0.8 |
None known |
python-pipUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 20.3.4-421.3.1+dfsg-322.0.2+dfsg-122.0.2+dfsg-1ubuntu0.122.0.2+dfsg-1ubuntu0.2 Show 8 moreShow less22.0.2+dfsg-1ubuntu0.322.0.2+dfsg-1ubuntu0.422.0.2+dfsg-1ubuntu0.522.0.2+dfsg-1ubuntu0.622.0.2+dfsg-1ubuntu0.722.0.2+dfsg-1ubuntu0.7+esm122.0.2+dfsg-1ubuntu0.7+esm222.0.2+dfsg-1ubuntu0.7+esm3 |
None known |
python-urllib3Ubuntu:24.04:LTS |
All versions, plus listed versions 1.26.16-11.26.18-12.0.7-12.0.7-1ubuntu0.12.0.7-1ubuntu0.2 Show 6 moreShow less2.0.7-1ubuntu0.32.0.7-1ubuntu0.42.0.7-1ubuntu0.52.0.7-1ubuntu0.62.0.7-1ubuntu0.72.0.7-1ubuntu0.8 |
None known |
python-pipUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 23.2+dfsg-123.3+dfsg-124.0+dfsg-124.0+dfsg-1ubuntu124.0+dfsg-1ubuntu1.1 Show 5 moreShow less24.0+dfsg-1ubuntu1.224.0+dfsg-1ubuntu1.324.0+dfsg-1ubuntu1.3+esm124.0+dfsg-1ubuntu1.3+esm224.0+dfsg-1ubuntu1.3+esm3 |
None known |
python-pipUbuntu:26.10 |
All versions, plus listed versions 25.1.1+dfsg-1ubuntu226.1.2+dfsg-1 |
None known |
python-urllib3Ubuntu:26.04:LTS |
before 2.6.3-1ubuntu1.2, plus listed versions 2.3.0-32.5.0-12.5.0-1ubuntu12.5.0-1ubuntu22.6.3-1ubuntu12.6.3-1ubuntu1.1 |
2.6.3-1ubuntu1.2 |
python-pipUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 25.1.1+dfsg-1ubuntu225.1.1+dfsg-1ubuntu2+esm125.1.1+dfsg-1ubuntu2+esm225.1.1+dfsg-1ubuntu2+esm3 |
None known |
python-urllib3Ubuntu:Pro:18.04:LTS From an advisory covering 3 CVEs |
before 1.22-1ubuntu0.18.04.2+esm5, plus listed versions 1.21.1-11.22-11.22-1ubuntu0.18.04.11.22-1ubuntu0.18.04.21.22-1ubuntu0.18.04.2+esm11.22-1ubuntu0.18.04.2+esm21.22-1ubuntu0.18.04.2+esm31.22-1ubuntu0.18.04.2+esm4 |
1.22-1ubuntu0.18.04.2+esm5 |
python-urllib3Ubuntu:Pro:20.04:LTS From an advisory covering 3 CVEs |
before 1.25.8-2ubuntu0.4+esm6, plus listed versions 1.24.1-1ubuntu11.24.1-1ubuntu21.25.8-11.25.8-21.25.8-2ubuntu0.1 Show 8 moreShow less1.25.8-2ubuntu0.21.25.8-2ubuntu0.31.25.8-2ubuntu0.41.25.8-2ubuntu0.4+esm11.25.8-2ubuntu0.4+esm21.25.8-2ubuntu0.4+esm31.25.8-2ubuntu0.4+esm41.25.8-2ubuntu0.4+esm5 |
1.25.8-2ubuntu0.4+esm6 |
python-urllib3Ubuntu:22.04:LTS From an advisory covering 3 CVEs |
before 1.26.5-1~exp1ubuntu0.8, plus listed versions 1.26.5-1~exp11.26.5-1~exp1ubuntu0.11.26.5-1~exp1ubuntu0.21.26.5-1~exp1ubuntu0.31.26.5-1~exp1ubuntu0.41.26.5-1~exp1ubuntu0.51.26.5-1~exp1ubuntu0.61.26.5-1~exp1ubuntu0.7 |
1.26.5-1~exp1ubuntu0.8 |
python-urllib3Ubuntu:24.04:LTS From an advisory covering 3 CVEs |
before 2.0.7-1ubuntu0.8, plus listed versions 1.26.16-11.26.18-12.0.7-12.0.7-1ubuntu0.12.0.7-1ubuntu0.2 Show 5 moreShow less2.0.7-1ubuntu0.32.0.7-1ubuntu0.42.0.7-1ubuntu0.52.0.7-1ubuntu0.62.0.7-1ubuntu0.7 |
2.0.7-1ubuntu0.8 |
python-urllib3Ubuntu:26.04:LTS From an advisory covering 3 CVEs |
before 2.6.3-1ubuntu1.2, plus listed versions 2.3.0-32.5.0-12.5.0-1ubuntu12.5.0-1ubuntu22.6.3-1ubuntu12.6.3-1ubuntu1.1 |
2.6.3-1ubuntu1.2 |
python-urllib3openSUSE:Tumbleweed From an advisory covering 12 CVEs |
before 2.8.0-1.1 | 2.8.0-1.1 |
python-urllib3_1openSUSE:Tumbleweed From an advisory covering 3 CVEs |
before 1.26.20-8.1 | 1.26.20-8.1 |
python-urllib3openSUSE:Leap 16.0 From an advisory covering 3 CVEs |
before 2.5.0-160000.8.1 | 2.5.0-160000.8.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | OSV | |
| affected, aliases, references | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-97687 is a high vulnerability (CVSS 7.6) in Python Urllib3, published September 29, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.21%, the 10th percentile. Fixed in urllib3 2.8.0.
References
github.com/urllib3/urllib3/security/advisories/GHSA-8988-9cw3-xx77
github.com/urllib3/urllib3/pull/5093
github.com/urllib3/urllib3/commit/07408cec79d1856d81bb42c74a904a24fdb9e465
github.com/urllib3/urllib3/commit/b6447295fff7b38fdffc67e0df9712d60cef3cc3
github.com/urllib3/urllib3/releases/tag/2.8.0
nvd.nist.gov/vuln/detail/CVE-2026-97687
Show 74 moreShow less
github.com/advisories/GHSA-8988-9cw3-xx77
access.redhat.com/errata/RHSA-2026:84577
access.redhat.com/security/cve/CVE-2026-97687
access.redhat.com/security/cve/CVE-2026-97689
bugzilla.redhat.com/2543245
bugzilla.redhat.com/2543255
errata.almalinux.org/9/ALSA-2026-84577.html
access.redhat.com/errata/RHSA-2026:84578
errata.almalinux.org/10/ALSA-2026-84578.html
access.redhat.com/errata/RHSA-2026:85929
errata.almalinux.org/9/ALSA-2026-85929.html
access.redhat.com/errata/RHSA-2026:85930
errata.almalinux.org/10/ALSA-2026-85930.html
access.redhat.com/errata/RHSA-2026:90494
errata.almalinux.org/9/ALSA-2026-90494.html
access.redhat.com/errata/RHSA-2026:92474
errata.almalinux.org/8/ALSA-2026-92474.html
docs.bell-sw.com/security/cves/CVE-2026-97687
github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97687.json
security-tracker.debian.org/tracker/CVE-2026-97687
github.com/urllib3/urllib3
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-4624
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-4625
nvd.nist.gov/vuln/detail/CVE-2026-97689
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-4626
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-4627
pypi.org/project/urllib3
access.redhat.com/errata/RHSA-2026:69612
images.redhat.com
access.redhat.com/security/cve/CVE-2026-97688
access.redhat.com/security/updates/classification
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_69612.json
bugzilla.redhat.com/show_bug.cgi?id=2543255
cve.org/CVERecord?id=CVE-2026-97687
bugzilla.redhat.com/show_bug.cgi?id=2543253
cve.org/CVERecord?id=CVE-2026-97688
nvd.nist.gov/vuln/detail/CVE-2026-97688
github.com/urllib3/urllib3/commit/ea2ad7b21a80da3632f80016526a18864586077f
github.com/urllib3/urllib3/security/advisories/GHSA-gh4c-6fx4-qh6g
bugzilla.redhat.com/show_bug.cgi?id=2543245
cve.org/CVERecord?id=CVE-2026-97689
github.com/urllib3/urllib3/commit/cd770b059b543be29298ea5c52afb0b1b090f5ed
github.com/urllib3/urllib3/security/advisories/GHSA-vxq7-64xx-v4gw
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_84577.json
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_84578.json
errata.rockylinux.org/RLSA-2026:84577
errata.rockylinux.org/RLSA-2026:84578
errata.rockylinux.org/RLSA-2026:85929
errata.rockylinux.org/RLSA-2026:85930
errata.rockylinux.org/RLSA-2026:90494
errata.rockylinux.org/RLSA-2026:92474
suse.com/support/update/announcement/2026/suse-su-202624125-1
bugzilla.suse.com/1283908
bugzilla.suse.com/1283909
bugzilla.suse.com/1283910
suse.com/security/cve/CVE-2026-97687
suse.com/security/cve/CVE-2026-97688
suse.com/security/cve/CVE-2026-97689
suse.com/support/update/announcement/2026/suse-su-202624217-1
suse.com/support/update/announcement/2026/suse-su-20264704-1
suse.com/support/update/announcement/2026/suse-su-20264948-1
ubuntu.com/security/CVE-2026-97687
ubuntu.com/security/notices/USN-8926-1
ubuntu.com/security/CVE-2026-97688
ubuntu.com/security/CVE-2026-97689
suse.com/security/cve/CVE-2016-9015
suse.com/security/cve/CVE-2018-20060
suse.com/security/cve/CVE-2019-11324
suse.com/security/cve/CVE-2019-9740
suse.com/security/cve/CVE-2020-26137
suse.com/security/cve/CVE-2021-33503
suse.com/security/cve/CVE-2023-43804
suse.com/security/cve/CVE-2023-45803
suse.com/security/cve/CVE-2024-37891
Left out here: the rest of 3 source descriptions. The JSON record has them.