CVE-2024-5642: Buffer overread when using an empty list with SSLContext.set_npn_protocols()
CPython 3.9 and earlier doesn't disallow configuring an empty list ("[]") for SSLContext.setnpnprotocols() which is an invalid value for the underlying OpenSSL API. This results in a buffer over-read when NPN is used (see CVE-2024-5535 for OpenSSL). This vulnerability is of low severity due to NPN being not widely used and specifying an empty list likely being uncommon in-practice (typically a protocol name would be configured).
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Compensating control
Do not configure an empty list ("[]") in Python 3.9 and earlier when calling SSLContext.set_npn_protocols(); instead provide a valid NPN protocol list if NPN is required.
Event History
Frequently Asked Questions
What is the severity of CVE-2024-5642?
The severity of CVE-2024-5642 is classified as low.
How do I fix CVE-2024-5642?
To fix CVE-2024-5642, ensure that your application does not configure an empty list for SSLContext.set_npn_protocols().
Which versions of CPython are affected by CVE-2024-5642?
CVE-2024-5642 affects CPython versions 3.9 and earlier.
What kind of issue does CVE-2024-5642 cause?
CVE-2024-5642 results in a buffer over-read when NPN is used due to an invalid value.
Is CVE-2024-5642 related to OpenSSL?
Yes, CVE-2024-5642 is related to OpenSSL, as it affects the underlying API used in conjunction with SSLContext.