Cloudanix VulnDB

CVE-2025-8291

Medium · 4.3

CVSS

4.3

EPSS

0.5%

Published

Oct 7, 2025

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

Python's ZIP file handling could let specially made archives be read differently than expected, which might cause programs to mishandle files in ways that affect data accuracy.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Low
Impact
Data Tampering
Component
Library
Class
Improper Input Validation
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The zipfile module fails to validate the offset value in the ZIP64 End of Central Directory Locator record and instead assumes the ZIP64 EOCD record is the immediately preceding record in the archive, enabling crafted ZIP files to be parsed inconsistently with other implementations.

Why it matters to the business

Applications relying on Python zipfile for archive processing may handle specially crafted ZIP files differently than standard tools, creating integrity risks during extraction or validation in automated pipelines and third-party integrations.

How an attack unfolds

An attacker constructs a ZIP archive containing a ZIP64 EOCD Locator with an offset that does not point to the actual ZIP64 EOCD record; when processed by the vulnerable zipfile module the incorrect assumption about record placement leads to divergent archive interpretation compared with compliant ZIP parsers.

How to fix it

Upgrade python/cpython to the commit 162997bb70e067668c039700141770687bc8f267 or later; the fix adds validation that the offset in the ZIP64 EOCD Locator matches the expected location while preserving existing behavior.

How to confirm the fix worked

Confirm the commit 162997bb70e067668c039700141770687bc8f267 is present in the Python build; test with ZIP archives containing invalid ZIP64 EOCD Locator offsets to verify the new offset-matching check is enforced.

Typical attack path

  1. Craft a ZIP archive with a manipulated ZIP64 EOCD Locator offset
  2. Deliver the archive through network channels or file uploads
  3. Trigger processing via Python code that uses the zipfile module
  4. Exploit inconsistent parsing to bypass integrity checks or alter extraction behavior

How to detect it

Review application logs for zipfile parsing anomalies or offset-related errors when processing ZIP archives; no public exploitation artifacts are known at this time.

What your security team should do

  • Apply the fixed commit 162997bb70e067668c039700141770687bc8f267 across all Python environments
  • Audit code paths that use zipfile for archive handling and add secondary validation where feasible
  • Monitor EPSS trend and re-evaluate if exploit maturity increases

The record

The 'zipfile' module would not check the validity of the ZIP64 End of Central Directory (EOCD) Locator record offset value would not be used to locate the ZIP64 EOCD record, instead the ZIP64 EOCD record would be assumed to be the previous record in the ZIP archive. This could be abused to create ZIP archives that are handled differently by the 'zipfile' module compared to other ZIP implementations. Remediation maintains this behavior, but checks that the offset specified in the ZIP64 EOCD Locator record matches the expected value.

Affected packages

Ecosystem Package Introduced Fixed
AlmaLinux:10 python-unversioned-command 0 3.12.12-1.el10_1
AlmaLinux:10 python3 0 3.12.12-1.el10_1
AlmaLinux:10 python3-debug 0 3.12.12-1.el10_1
AlmaLinux:10 python3-devel 0 3.12.12-1.el10_1
AlmaLinux:10 python3-idle 0 3.12.12-1.el10_1
AlmaLinux:10 python3-libs 0 3.12.12-1.el10_1
AlmaLinux:10 python3-test 0 3.12.12-1.el10_1
AlmaLinux:10 python3-tkinter 0 3.12.12-1.el10_1
AlmaLinux:8 python3.12 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-debug 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-devel 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-idle 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-libs 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-rpm-macros 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-test 0 3.12.12-1.el8_10
AlmaLinux:8 python3.12-tkinter 0 3.12.12-1.el8_10
AlmaLinux:8 python39 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-Cython 0 0.29.21-5.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-Cython 0 0.29.21-5.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-PyMySQL 0 0.10.1-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-attrs 0 20.3.0-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-cffi 0 1.14.3-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-cffi 0 1.14.3-2.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-chardet 0 3.0.4-19.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-cryptography 0 3.3.1-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-debug 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-devel 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-idle 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-idna 0 2.10-4.module_el8.10.0+3849+a48d89aa
AlmaLinux:8 python39-iniconfig 0 1.1.1-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-libs 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-lxml 0 4.6.5-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-lxml 0 4.6.5-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-mod_wsgi 0 4.7.1-7.module_el8.10.0+3989+a618fe15.1
AlmaLinux:8 python39-more-itertools 0 8.5.0-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy 0 1.19.4-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy 0 1.19.4-3.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-numpy-doc 0 1.19.4-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy-f2py 0 1.19.4-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-numpy-f2py 0 1.19.4-3.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-packaging 0 20.4-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pip 0 20.2.4-9.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-pip-wheel 0 20.2.4-9.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-pluggy 0 0.13.1-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-ply 0 3.11-10.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-psutil 0 5.8.0-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-psutil 0 5.8.0-4.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-psycopg2 0 2.8.6-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-psycopg2-doc 0 2.8.6-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-psycopg2-tests 0 2.8.6-3.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-py 0 1.10.0-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pybind11 0 2.7.1-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pybind11 0 2.7.1-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-pybind11-devel 0 2.7.1-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pybind11-devel 0 2.7.1-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-pycparser 0 2.20-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pyparsing 0 2.4.7-5.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pysocks 0 1.7.1-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pytest 0 6.0.2-2.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pyyaml 0 5.4.1-1.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-pyyaml 0 5.4.1-1.module_el8.6.0+3248+c431e88c
AlmaLinux:8 python39-requests 0 2.25.0-3.module_el8.9.0+3634+fb2a896c
AlmaLinux:8 python39-rpm-macros 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-scipy 0 1.5.4-5.module_el8.9.0+3634+fb2a896c
AlmaLinux:8 python39-setuptools 0 50.3.2-7.module_el8.10.0+4040+9207bbc0
AlmaLinux:8 python39-setuptools-wheel 0 50.3.2-7.module_el8.10.0+4040+9207bbc0
AlmaLinux:8 python39-six 0 1.15.0-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-test 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-tkinter 0 3.9.25-2.module_el8.10.0+4083+53cad1fb
AlmaLinux:8 python39-toml 0 0.10.1-5.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-urllib3 0 1.25.10-5.module_el8.10.0+3765+2f9a457d
AlmaLinux:8 python39-wcwidth 0 0.2.5-3.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-wheel 0 1:0.35.1-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:8 python39-wheel-wheel 0 1:0.35.1-4.module_el8.6.0+2780+a40f65e1
AlmaLinux:9 python-unversioned-command 0 3.9.25-2.el9_7
AlmaLinux:9 python3 0 3.9.25-2.el9_7
AlmaLinux:9 python3-debug 0 3.9.25-2.el9_7
AlmaLinux:9 python3-devel 0 3.9.25-2.el9_7
AlmaLinux:9 python3-idle 0 3.9.25-2.el9_7
AlmaLinux:9 python3-libs 0 3.9.25-2.el9_7
AlmaLinux:9 python3-test 0 3.9.25-2.el9_7
AlmaLinux:9 python3-tkinter 0 3.9.25-2.el9_7
AlmaLinux:9 python3.12 0 3.12.12-1.el9_7
AlmaLinux:9 python3.12-debug 0 3.12.12-1.el9_7
AlmaLinux:9 python3.12-devel 0 3.12.12-1.el9_7
AlmaLinux:9 python3.12-idle 0 3.12.12-1.el9_7
AlmaLinux:9 python3.12-libs 0 3.12.12-1.el9_7
AlmaLinux:9 python3.12-test 0 3.12.12-1.el9_7
AlmaLinux:9 python3.12-tkinter 0 3.12.12-1.el9_7
Bitnami libpython 0 No fix
Bitnami libpython 0 3.9.24
Bitnami python 0 No fix
Bitnami python 0 3.9.24
Bitnami python-min 0 No fix
Bitnami python-min 0 3.9.24
Chainguard python-3.10 0 3.10.19-r0
Chainguard python-3.10-base 0 3.10.19-r0
Chainguard python-3.10-base-dev 0 3.10.19-r0
Chainguard python-3.10-dev 0 3.10.19-r0
Chainguard python-3.10-doc 0 3.10.19-r0
Chainguard python-3.11 0 3.11.14-r0
Chainguard python-3.11-base 0 3.11.14-r0
Chainguard python-3.11-base-dev 0 3.11.14-r0
Chainguard python-3.11-dev 0 3.11.14-r0
Chainguard python-3.11-doc 0 3.11.14-r0
Chainguard python-3.12 0 3.12.12-r0
Chainguard python-3.12-base 0 3.12.12-r0
Chainguard python-3.12-base-dev 0 3.12.12-r0
Chainguard python-3.12-dev 0 3.12.12-r0
Chainguard python-3.12-doc 0 3.12.12-r0
Chainguard python-3.12-privileged-netbindservice 0 3.12.12-r0
Chainguard python-3.12-tk 0 3.12.12-r0
Chainguard python-3.13 0 3.13.8-r1
Chainguard python-3.13-base 0 3.13.8-r1
Chainguard python-3.13-base-dev 0 3.13.8-r1
Chainguard python-3.13-dev 0 3.13.8-r1
Chainguard python-3.13-doc 0 3.13.8-r1
Chainguard python-3.13-privileged-netbindservice 0 3.13.8-r1
Chainguard python-3.13-tk 0 3.13.8-r1
Chainguard python-3.14 0 3.14.0-r2
Chainguard python-3.14-base 0 3.14.0-r2
Chainguard python-3.14-base-dev 0 3.14.0-r2
Chainguard python-3.14-dev 0 3.14.0-r2
Chainguard python-3.14-doc 0 3.14.0-r2
Chainguard python-3.14-privileged-netbindservice 0 3.14.0-r2
Chainguard python-3.14-tk 0 3.14.0-r2
Chainguard python-3.14t 0 3.14.0-r2
Chainguard python-3.9 0 3.9.24-r0
Chainguard python-3.9-base 0 3.9.24-r0
Chainguard python-3.9-base-dev 0 3.9.24-r0
Chainguard python-3.9-default 0 3.9.24-r0
Chainguard python-3.9-dev 0 3.9.24-r0
Chainguard python-3.9-doc 0 3.9.24-r0
SUSE:Linux Enterprise Micro 5.2 python3 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.2 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.3 python3 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.3 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.4 python3 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.4 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.5 python3 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Micro 5.5 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 python3 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 python311-core 0 3.11.14-150600.3.38.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 python3 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 python311-core 0 3.11.14-150600.3.38.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 python3-core 0 3.6.15-150300.10.100.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 python 0 2.7.18-150000.86.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 python 0 2.7.18-150000.89.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 python-base 0 2.7.18-150000.86.1
SUSE:Linux Enterprise Module for Package Hub 15 SP6 python-base 0 2.7.18-150000.89.2
SUSE:Linux Enterprise Module for Package Hub 15 SP7 python 0 2.7.18-150000.86.1
SUSE:Linux Enterprise Module for Package Hub 15 SP7 python 0 2.7.18-150000.89.1
SUSE:Linux Enterprise Module for Package Hub 15 SP7 python-base 0 2.7.18-150000.86.1
SUSE:Linux Enterprise Module for Package Hub 15 SP7 python-base 0 2.7.18-150000.89.2
SUSE:Linux Enterprise Module for Python 3 15 SP6 python311 0 3.11.14-150600.3.38.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python311-core 0 3.11.14-150600.3.38.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python312 0 3.12.12-150600.3.37.1
SUSE:Linux Enterprise Module for Python 3 15 SP6 python312-core 0 3.12.12-150600.3.37.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python311 0 3.11.14-150600.3.38.1
SUSE:Linux Enterprise Module for Python 3 15 SP7 python311-core 0 3.11.14-150600.3.38.1
Wolfi python-3.10 0 3.10.19-r0
Wolfi python-3.10-base 0 3.10.19-r0
Wolfi python-3.10-base-dev 0 3.10.19-r0
Wolfi python-3.10-dev 0 3.10.19-r0
Wolfi python-3.10-doc 0 3.10.19-r0
Wolfi python-3.11 0 3.11.14-r0
Wolfi python-3.11-base 0 3.11.14-r0
Wolfi python-3.11-base-dev 0 3.11.14-r0
Wolfi python-3.11-dev 0 3.11.14-r0
Wolfi python-3.11-doc 0 3.11.14-r0
Wolfi python-3.12 0 3.12.12-r0
Wolfi python-3.12-base 0 3.12.12-r0
Wolfi python-3.12-base-dev 0 3.12.12-r0
Wolfi python-3.12-dev 0 3.12.12-r0
Wolfi python-3.12-doc 0 3.12.12-r0
Wolfi python-3.12-privileged-netbindservice 0 3.12.12-r0
Wolfi python-3.12-tk 0 3.12.12-r0
Wolfi python-3.13 0 3.13.8-r1
Wolfi python-3.13-base 0 3.13.8-r1
Wolfi python-3.13-base-dev 0 3.13.8-r1
Wolfi python-3.13-dev 0 3.13.8-r1
Wolfi python-3.13-doc 0 3.13.8-r1
Wolfi python-3.13-privileged-netbindservice 0 3.13.8-r1
Wolfi python-3.13-tk 0 3.13.8-r1
Wolfi python-3.14 0 3.14.0-r2
Wolfi python-3.14-base 0 3.14.0-r2
Wolfi python-3.14-base-dev 0 3.14.0-r2
Wolfi python-3.14-dev 0 3.14.0-r2
Wolfi python-3.14-doc 0 3.14.0-r2
Wolfi python-3.14-privileged-netbindservice 0 3.14.0-r2
Wolfi python-3.14-tk 0 3.14.0-r2
Wolfi python-3.14t 0 3.14.0-r2
openSUSE:Leap 15.6 python 0 2.7.18-150000.86.1
openSUSE:Leap 15.6 python 0 2.7.18-150000.89.1
openSUSE:Leap 15.6 python-base 0 2.7.18-150000.86.1
openSUSE:Leap 15.6 python-base 0 2.7.18-150000.89.2
openSUSE:Leap 15.6 python-doc 0 2.7.18-150000.86.1

Related vulnerabilities