CVE-2026-6100: Use-after-free in lzma.LZMADecompressor, bz2.BZ2Decompressor, and gzip.GzipFile after re-use under memory pressure
Use-after-free (UAF) was possible in the `lzma.LZMADecompressor`, `bz2.BZ2Decompressor`, and `gzip.GzipFile` when a memory allocation fails with a `MemoryError` and the decompression instance is re-used. This scenario can be triggered if the process is under memory pressure. The fix cleans up the dangling pointer in this specific error condition.
The vulnerability is only present if the program re-uses decompressor instances across multiple decompression calls even after a `MemoryError` is raised during decompression. Using the helper functions to one-shot decompress data such as `lzma.decompress()`, `bz2.decompress()`, `gzip.decompress()`, and `zlib.decompress()` are not affected as a new decompressor instance is used per call. If the decompressor instance is not re-used after an error condition, this usage is similarly not vulnerable.
Security readout for executives and security teams
Plain-English summary
A rare CPython decompression error can leave memory in an unsafe state. Risk arises only when memory exhaustion interrupts decompression and the application later reuses that same decompressor object. One-shot helper functions and applications that discard the object after an error are not affected.
Executive priority
Treat as an expedited patching and code-review item for internet-facing or untrusted-input services. Immediate emergency action is most justified where all three prerequisites coexist: affected CPython, attacker-influenced memory pressure, and decompressor reuse after MemoryError. Otherwise, address through prioritized maintenance while confirming exposure.
Technical view
CVE-2026-6100 is a use-after-free affecting lzma.LZMADecompressor, bz2.BZ2Decompressor, and gzip.GzipFile. An allocation failure can raise MemoryError while leaving a dangling pointer; reusing the instance may then cause memory corruption. The published CVSS 4.0 score is 9.1, although exploitation requires memory pressure and a specific reuse pattern.
Likely exposure
Exposure is narrow but potentially serious. Prioritize services that process untrusted compressed content, can be driven into memory pressure, and retain decompressor instances after MemoryError. One-shot lzma.decompress(), bz2.decompress(), gzip.decompress(), and zlib.decompress() calls are explicitly unaffected.
Exploitation context
The supplied record is not in CISA KEV and provides no evidence of active exploitation. Exploitation requires a memory-allocation failure during decompression followed by reuse of the same affected instance, reflected in the high attack complexity and prerequisite condition. No conclusion about practical exploit reliability is supported.
Researcher notes
The weakness is classified as use-after-free, out-of-bounds write, and expired-pointer dereference. The upstream fix cleans the dangling pointer in the allocation-failure path. The supplied version data does not clearly identify complete fixed-release boundaries, so validate exact package status through Python or distribution advisories rather than inferring versions.
Mitigation direction
Apply a vendor or distribution update containing the referenced CPython fix.
Discard decompressor instances immediately after MemoryError or any decompression failure.
Prefer documented one-shot decompression helpers where application requirements permit.
Limit attacker-controlled memory pressure and compressed-input processing until remediation is verified.
Validation and detection
Inventory CPython runtimes and distribution packages against applicable vendor advisories.
Search code for persistent LZMADecompressor, BZ2Decompressor, or GzipFile reuse.
Confirm error handlers never reuse a decompressor after MemoryError.
Verify deployed packages include the vendor fix or referenced upstream patch.
Run safe regression tests covering allocation failure and instance disposal behavior.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-416: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
5Timeline events
3ADP providers
50Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-416 · source CWE mapping
Use After Free
Use After Free represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Out-of-bounds Write represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Expired Pointer Dereference represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.