CVE-2019-11324: urllib3 - SSL Verification Bypass

urllib3 Updated 02 Oct 2025

Summary

18/04/2019
Yes i
High
7.5

CVE-2019-11324: The urllib3 library before 1.24.2 for Python mishandles certain cases where the desired set of CA certificates is different from the OS store of CA certificates, which results in SSL connections succeeding in situations... Affects urllib3 versions < 1.24.2. Fixed in 1.24.2. How to fix ↓

Also tracked for

The same CVE-2019-11324 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Mobile apps built by Devnack Design, build and launch iOS and Android apps with a senior product team. From idea to store release Start a project

Background

urllib3 is a powerful HTTP client library for Python, widely used for making HTTP requests. It provides a high-level interface for handling various aspects of HTTP, including connection pooling, SSL/TLS verification, and more. However, versions prior to 1.24.2 mishandle certain cases where the desired set of CA certificates differs from the OS store of CA certificates. This can lead to SSL connections succeeding even when a verification failure is the correct outcome.

Vulnerability Detail

The vulnerability in urllib3 arises from the mishandling of SSL verification. When the desired set of CA certificates is different from the OS store of CA certificates, SSL connections may succeed even in situations where a verification failure should occur. This can result in the establishment of insecure connections, allowing attackers to intercept or modify sensitive data transmitted over the network. The issue is related to the usage of the ssl_context, ca_certs, or ca_certs_dir argument.

How To Fix

Latest published version: 2.8.0 as of 23 Oct 2026

pip install --upgrade "urllib3==2.8.0"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

1.24.2

This is the first release that contains the fix.

pip install --upgrade "urllib3==1.24.2"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If upgrading urllib3 is not immediately feasible, a possible workaround is to manually verify SSL certificates in your code. This involves explicitly specifying the CA certificates to be used for verification, rather than relying on the OS store. Here's an example of how to do this using the requests library, which internally uses urllib3:

import requests

Specify the path to the CA certificates file

ca_certs_path = '/path/to/ca_certs.pem'

Create a session with custom SSL verification

session = requests.Session() session.verify = ca_certs_path

Make requests using the session

response = session.get('https://example.com')

Process the response as needed

Conclusion

The urllib3 library for Python versions prior to 1.24.2 is vulnerable to SSL verification bypass. This can result in the establishment of insecure connections, potentially exposing sensitive data to attackers. It is recommended to upgrade urllib3 to version 1.24.2 or later to fix this vulnerability. If immediate upgrade is not feasible, manually verifying SSL certificates in your code can serve as a temporary workaround. For further support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for urllib3 →

Share this vulnerability

FAQ

urllib3 is a Python library for making HTTP requests. It provides a high-level interface for handling various aspects of HTTP, including connection pooling, SSL/TLS verification, and more.

SSL verification is the process of verifying the authenticity of SSL certificates presented by servers during an SSL/TLS handshake. It ensures that the server is trusted and the connection is secure.

This vulnerability can lead to the establishment of insecure SSL connections, allowing attackers to intercept or modify sensitive data transmitted over the network.

To fix this vulnerability, upgrade urllib3 to version 1.24.2 or later. Alternatively, you can manually verify SSL certificates in your code.

Yes, a possible workaround is to manually verify SSL certificates in your code by explicitly specifying the CA certificates to be used for verification.

Related vulnerabilities

Recent vulnerabilities recorded for urllib3.

How To Fix

Latest published version: 2.8.0 as of 23 Oct 2026

pip install --upgrade "urllib3==2.8.0"

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

1.24.2

This is the first release that contains the fix.

pip install --upgrade "urllib3==1.24.2"

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback