Описание
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).
Пакеты
| Пакет | Статус | Версия исправления | Релиз | Тип |
|---|---|---|---|---|
| pypy3 | fixed | 7.3.10+dfsg-1 | package | |
| pypy3 | postponed | bullseye | package | |
| python3.13 | not-affected | package | ||
| python3.12 | not-affected | package | ||
| python3.11 | not-affected | package | ||
| python3.9 | removed | package | ||
| python3.9 | ignored | bullseye | package | |
| python3.7 | removed | package | ||
| python2.7 | removed | package | ||
| python2.7 | ignored | bullseye | package |
Примечания
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/security-announce@python.org/thread/PLP2JI3PJY33YG6P5BZYSSNU66HASXBQ/
Fixed by removing or disabling NPN support.
Python NPN code expunged in v3.10:
https://github.com/python/cpython/commit/39258d3595300bc7b952854c915f63ae2d4b9c3e (v3.10.0b1)
Python NPN support (ssl.HAS_NPN) previously disabled at compile-time if OpenSSL >= 1.1.1 (>= buster) is detected:
https://github.com/python/cpython/commit/a79591cfb81dde65bb2f891d62de0161c23a4ff4 (v3.6.5rc1)
https://github.com/python/cpython/commit/df1732a4734190fefc8814687895fc1168716c37 (v2.7.15rc1)
PyPy NPN is dead code starting with pypy3.9 v7.3.8rc1 / pypy3.10 v7.3.12rc1 / pypy3.11 v7.3.18:
https://github.com/pypy/pypy/commit/6b731c86269cadbafc70a7436996115a8cd312ff (release-pypy3.9-v7.3.8rc1)
EPSS
Связанные уязвимости
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).
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).
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).
Buffer overread when using an empty list with SSLContext.set_npn_protocols()
EPSS