CVE-2024-5642

NameCVE-2024-5642
DescriptionCPython 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).
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesELA-1137-1, ELA-1138-1

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
pypy (PTS)jessie2.4.0+dfsg-3vulnerable
stretch5.6.0+dfsg-4vulnerable
buster7.0.0+dfsg-3vulnerable
bullseye7.3.3+dfsg-2vulnerable
python2.7 (PTS)jessie, jessie (lts)2.7.9-2-ds1-1+deb8u12vulnerable
stretch (security)2.7.13-2+deb9u6vulnerable
stretch (lts), stretch2.7.13-2+deb9u9vulnerable
buster (security), buster, buster (lts)2.7.16-2+deb10u4vulnerable
bullseye2.7.18-8+deb11u1vulnerable
python3.11 (PTS)bookworm3.11.2-6+deb12u4fixed
bookworm (security)3.11.2-6+deb12u3fixed
python3.12 (PTS)sid, trixie3.12.8-3fixed
python3.13 (PTS)sid, trixie3.13.1-2fixed
python3.4 (PTS)jessie, jessie (lts)3.4.2-1+deb8u19fixed
python3.5 (PTS)stretch (security)3.5.3-1+deb9u5vulnerable
stretch (lts), stretch3.5.3-1+deb9u11fixed
python3.7 (PTS)buster, buster (lts)3.7.3-2+deb10u9vulnerable
buster (security)3.7.3-2+deb10u7vulnerable
python3.9 (PTS)bullseye3.9.2-1vulnerable
bullseye (security)3.9.2-1+deb11u2vulnerable

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
pypysourcejessie(unfixed)end-of-life
pypysource(unstable)(unfixed)
python2.7source(unstable)(unfixed)
python3.11source(unstable)(not affected)
python3.12source(unstable)(not affected)
python3.13source(unstable)(not affected)
python3.4sourcejessie3.4.2-1+deb8u18ELA-1138-1
python3.5sourcestretch3.5.3-1+deb9u10ELA-1137-1
python3.7source(unstable)(unfixed)
python3.9source(unstable)(unfixed)

Notes

- python3.13 <not-affected> (Fixed before initial upload)
- python3.12 <not-affected> (Fixed before initial upload)
- python3.11 <not-affected> (Fixed before initial upload)
[bullseye] - python3.9 <ignored> (NPN support already disabled with OpenSSL 1.1.1)
[bullseye] - python2.7 <ignored> (Unsupported in Bullseye, only included to build a few applications)
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/
https://github.com/python/cpython/commit/39258d3595300bc7b952854c915f63ae2d4b9c3e (v3.10.0b1)
NPN support already disabled with OpenSSL >= 1.1.1 in buster and bullseye:
https://github.com/python/cpython/commit/29eab55309b9f78b79074d26db16a44e7841c639 (v3.8.0a1)
https://github.com/python/cpython/commit/961774184eb950e2547ab0d42653439adc735924 (v3.7.0b2)
[buster] - python2.7 <ignored> (NPN support already disabled with OpenSSL 1.1.1)
[stretch] - python2.7 <postponed> (Minor issue)
[jessie] - python2.7 <postponed> (Minor issue)
[buster] - python3.7 <ignored> (NPN support already disabled with OpenSSL 1.1.1)

Search for package or bug name: Reporting problems