CyberAlerts is shutting down on June 30th, 2025. Thank you for your support!

CVE-2024-5642: Buffer overread when using an empty list with SSLContext.set_npn_protocols()

Description

CPython 3.9 and earlier doesn't disallow configuring an empty list ("[]") for SSLContext.set_npn_protocols() 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).

Classification

CVE ID: CVE-2024-5642

Affected Products

Vendor: Python Software Foundation

Product: CPython

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.04% (probability of being exploited)

EPSS Percentile: 12.91% (scored less or equal to compared to others)

EPSS Date: 2025-03-14 (when was this score calculated)

References

https://jbp.io/2024/06/27/cve-2024-5535-openssl-memory-safety.html
https://github.com/python/cpython/pull/23014
https://mail.python.org/archives/list/[email protected]/thread/PLP2JI3PJY33YG6P5BZYSSNU66HASXBQ/
https://github.com/python/cpython/commit/39258d3595300bc7b952854c915f63ae2d4b9c3e
http://www.openwall.com/lists/oss-security/2024/06/28/4
https://github.com/python/cpython/issues/121227
https://security.netapp.com/advisory/ntap-20240726-0005/

Timeline