CVE-2026-9669 json
bz2.BZ2Decompressor reuse after error can cause a stack buffer overflow
published 2026-06-08 5 mo ago modified 2026-08-19 2 mo ago also BIT-libpython-2026-9669 , BIT-python-2026-9669 , BIT-python-min-2026-9669 , EUVD-2026-35202
- cvss
- 8.2
- version 4.0, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 37%
- public exploits
- 0
- none known
Summary
bz2.BZ2Decompressor objects could be reused after a decompression error. If an application caught the resulting OSError and retried with the same decompressor, crafted input could cause the decompressor to resume from an invalid internal state and perform out-of-bounds writes to a stack buffer. This could crash the process when processing untrusted data.
Patch / fix
- bitnami libpython 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6
- bitnami python 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6
- bitnami python-min 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6
- Python Software Foundation CPython 3.10.21, 3.11.16, 3.12.14, 3.13.14, 3.14.6, 3.15.0b3
- python3.11 Debian 12 3.11.2-6+deb12u9
- python3.13 Debian 13 3.13.5-2+deb13u3
- python3.14 Debian 14 3.14.6-1
debian advisories DEBIAN-CVE-2026-9669
- python3.10 Ubuntu 22.04 LTS 3.10.12-1~22.04.16
- python3.12 Ubuntu 24.04 LTS 3.12.3-1ubuntu0.15
- python3.14 Ubuntu 26.04 LTS 3.14.4-1ubuntu0.1
ubuntu advisories UBUNTU-CVE-2026-9669
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- python3.13 hummingbird 1 3.13.15-1.3.hum1
- python3.13-idle hummingbird 1 3.13.15-1.3.hum1
- python3.13-libs hummingbird 1 3.13.15-1.3.hum1
- python3.13-test hummingbird 1 3.13.15-1.3.hum1
- python3.13-tkinter hummingbird 1 3.13.15-1.3.hum1
- python3.13-freethreading hummingbird 1 3.13.15-1.3.hum1
- python3.12 hummingbird 1 3.12.14-1.3.hum1
- python3.12-idle hummingbird 1 3.12.14-1.3.hum1
red hat advisories RHSA-2026:68309RHSA-2026:68154RHSA-2026:68135RHSA-2026:68132RHSA-2026:67572
- python311 SLES for SAP 15 SP6, SLES 15 SP6-LTSS, SLE Module for Python 3 15 SP7 3.11.17-150600.3.74.1
- python311-core SLES for SAP 15 SP6, SLES 15 SP6-LTSS, SLE Module for Python 3 15 SP7 +1 more 3.11.17-150600.3.74.1
- python3 SLES for SAP 15 SP6, SLES for SAP 15 SP5, SLES for SAP 15 SP4 +11 more 3.6.15-150300.10.129.1
- python3-core SLES for SAP 15 SP6, SLES for SAP 15 SP5, SLES for SAP 15 SP4 +12 more 3.6.15-150300.10.129.1
- python SLE Module for Package Hub 15 SP7 2.7.18-150000.133.1
- python-base SLE Module for Package Hub 15 SP7 2.7.18-150000.133.1
- python313 SLE Module for Python 3 15 SP7 3.13.15-150700.4.56.1
- python313-core SLE Module for Python 3 15 SP7 3.13.15-150700.4.56.1
suse advisories SUSE-SU-2026:4946-1SUSE-SU-2026:4754-1SUSE-SU-2026:4744-1SUSE-SU-2026:4743-1SUSE-SU-2026:4633-1SUSE-SU-2026:4534-1
- python313 openSUSE Tumbleweed 3.13.15-1.1
- python311 openSUSE Tumbleweed 3.11.16-1.1
- python312 openSUSE Tumbleweed 3.12.14-1.1
- python310 openSUSE Tumbleweed 3.10.21-1.1
- python315 openSUSE Tumbleweed 3.15.0~rc2-1.1
- python314 openSUSE Tumbleweed 3.14.6-1.1
opensuse advisories openSUSE-SU-2026:11817-1openSUSE-SU-2026:11756-1openSUSE-SU-2026:11757-1openSUSE-SU-2026:11747-1openSUSE-SU-2026:11748-1openSUSE-SU-2026:11181-1
- python3 Alpine 3.24 3.14.7-r0
alpine advisories ALPINE-CVE-2026-9669
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- github.com/python/cpython@157a5df commit
- github.com/python/cpython@5755d0f commit
- github.com/python/cpython@619a12b commit
- github.com/python/cpython@d3ca269 commit
- github.com/python/cpython@938ec03 commit
- github.com/python/cpython@991e6cf commit
- github.com/python/cpython@1ba6135 commit
- github.com/python/cpython#150600 pull request
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-9669 updated cvss 5.9
python: Python: Denial of Service via out-of-bounds write in BZ2 decompression
-
Red Hat Enterprise Linux 8 scipy, python36, python-nose, python-wheel, python3-bson, python3-nose, +19 moreaffected: workaround, no fix available “Fix deferred”
-
Red Hat Hardened Images python3 3.14.7-1.2.hum1, python3.14 3.14.7-1.2.hum1, python3.10 3.10.21-1.3.hum1, python3.11 3.11.16-1.4.hum1, python3.12 3.12.14-1.3.hum1, python3.13 3.13.15-1.3.hum1, +27 morefixed: vendor fix RHSA-2026:67572
-
Red Hat Hardened Images hi/pythonnot affected: component not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 4 mo ago
Exploit prediction
0.43% chance of exploitation in the next 30 days, higher than 37% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.2 | CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N |
| CNA | 4.0 | 8.2 | CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| bitnami | libpython | <3.10.21 >=3.11.0, <3.11.16 >=3.12.0, <3.12.14 >=3.13.0, <3.13.14 >=3.14.0, <3.14.6 |
3.10.21 3.11.16 3.12.14 3.13.14 3.14.6 |
| bitnami | python | <3.10.21 >=3.11.0, <3.11.16 >=3.12.0, <3.12.14 >=3.13.0, <3.13.14 >=3.14.0, <3.14.6 |
3.10.21 3.11.16 3.12.14 3.13.14 3.14.6 |
| bitnami | python-min | <3.10.21 >=3.11.0, <3.11.16 >=3.12.0, <3.12.14 >=3.13.0, <3.13.14 >=3.14.0, <3.14.6 |
3.10.21 3.11.16 3.12.14 3.13.14 3.14.6 |
Affected products
- Python Software Foundation CPython
Classification
- Weakness
-
- CWE-121 Stack-based Buffer Overflow
References
-
github.com
/python/cpython/pull/150600
patch, web
-
github.com
/python/cpython/commit/157a5df8cb5d82b33f918a7489e72ce95ceb12b6
patch, web
-
github.com
/python/cpython/commit/5755d0f083949ff3c5bf3a37e673e24e306b036e
patch, web
-
github.com
/python/cpython/commit/619a12b2e545391dc436b3af79dda22337382a6f
patch, web
-
github.com
/python/cpython/commit/d3ca26983dfbccdf609f24ff5877dc3118e4702d
patch, web
-
github.com
/python/cpython/commit/938ec030e90c5e53f1faac6fab1643f14e4f4a79
patch, web
-
github.com
/python/cpython/commit/991e6cf86496718c4ef00b362d640e00cb5c85b2
patch, web
-
github.com
/python/cpython/commit/1ba6135eae75ad8413413caeeedb56ae72320636
patch, web
-
mail.python.org
/archives/list/security-announce@python.org/thread/DBJZETMGUIFK7DVUWMOXHD3Z6IX2QPSX/
vendor-advisory, web
-
github.com
/python/cpython/issues/150599
issue-tracking, web
-
openwall.com
/lists/oss-security/2026/06/08/17
web
-
nvd.nist.gov
/vuln/detail/CVE-2026-9669
web
Sources
- CVE List CVE-2026-9669
- NVD CVE-2026-9669
- OSV BIT-libpython-2026-9669
- OSV BIT-python-2026-9669
- OSV BIT-python-min-2026-9669
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.