Description
pyzipper is a replacement for Python's zipfile that can read and write AES encrypted zip files. Prior to 0.4.0, a Python operator precedence bug in pyzipper/zipfile_aes.py caused the AE-2 format to never be automatically selected during encryption, causing encrypted entries to be written in AE-1 format and exposing the plaintext CRC32 checksum in the ZIP header and, for unseekable zip archives, in the datadescripter section, allowing an attacker who possesses the archive to brute-force candidate plaintexts for small or low-entropy files by comparing CRC32 values. This issue is fixed in version 0.4.0.
Published: 2026-07-17
Score: 6.2 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A Python operator precedence error in pyzipper/zipfile_aes.py before version 0.4.0 caused the AE‑2 encryption mode to be bypassed, resulting in files being encrypted with the weaker AE‑1 format. This leaves the plaintext CRC32 checksum visible in the ZIP header and, for unseekable archives, also in the data descriptor, enabling an attacker who has the archive to brute‑force small or low‑entropy files by comparing CRC32 values. The weakness is classified as CWE‑480.

Affected Systems

Python developers and users employing the danifus:pyzipper library, specifically any installation of pyzipper earlier than version 0.4.0. The bug applies to all files encrypted with the library when AE‑1 was inadvertently used. No other vendor or product is affected.

Risk and Exploitability

The problem has a CVSS score of 6.2 and an EPSS score of less than 1 %, indicating that the risk is moderate but classic exploitation scenarios are unlikely at present. The vulnerability is not listed in CISA’s KEV catalog. Attackers need only possess the affected ZIP archive; if low entropy, they can compute CRC32 hashes of candidate strings until a match is found. An exploit path is straightforward for a skilled attacker but unlikely to be automated widely.

Generated by OpenCVE AI on July 31, 2026 at 00:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pyzipper to version 0.4.0 or newer, which fixes the operator‑precedence bug and forces the use of AE‑2 encryption.
  • For any existing archives encrypted with earlier pyzipper releases, re‑encrypt the entries using the updated library.
  • Avoid encrypting very small or low‑entropy files with pyzipper until the library is updated, or use an alternative library that supports only secure encryption modes.

Generated by OpenCVE AI on July 31, 2026 at 00:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-crqm-m339-7m2p pyzipper has an encryption bypass for small files encrypted using it
History

Thu, 23 Jul 2026 21:45:00 +0000

Type Values Removed Values Added
First Time appeared Danifus
Danifus pyzipper
Vendors & Products Danifus
Danifus pyzipper

Fri, 17 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 17 Jul 2026 16:45:00 +0000

Type Values Removed Values Added
Description pyzipper is a replacement for Python's zipfile that can read and write AES encrypted zip files. Prior to 0.4.0, a Python operator precedence bug in pyzipper/zipfile_aes.py caused the AE-2 format to never be automatically selected during encryption, causing encrypted entries to be written in AE-1 format and exposing the plaintext CRC32 checksum in the ZIP header and, for unseekable zip archives, in the datadescripter section, allowing an attacker who possesses the archive to brute-force candidate plaintexts for small or low-entropy files by comparing CRC32 values. This issue is fixed in version 0.4.0.
Title pyzipper: Encryption bypass for small files encrypted with pyzipper
Weaknesses CWE-480
References
Metrics cvssV3_1

{'score': 6.2, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'}


Subscriptions

Danifus Pyzipper
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-17T17:25:08.270Z

Reserved: 2026-05-07T18:04:17.308Z

Link: CVE-2026-44722

cve-icon Vulnrichment

Updated: 2026-07-17T17:25:04.389Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-31T00:15:05Z

Weaknesses
  • CWE-480

    Use of Incorrect Operator