Skip to content
OpenAdvisories
Medium · 4.4 Public exploit CVE-2026-25645 EUVD-2026-15754GHSA-gc5v-m9x4-r6x2PYSEC-2026-2275

Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility function

Published Mar 25, 2026 · Updated Mar 25, 2026 · Assigned by GitHub_M

Vendor: psf Product: requests Package: airflow-3 Package: az Package: checkov Package: confluent-docker-utils Package: dask-kubernetes Package: datadog-agent-7.72 Package: datadog-agent-7.72-core-integrations Package: datadog-agent-7.73 Package: datadog-agent-7.73-core-integrations Package: datadog-agent-7.77 Package: datadog-agent-7.77-core-integrations Package: ggshield Package: jupyter-base-notebook Package: jwt-tool Package: k8s-sidecar Package: katib-earlystopping Package: katib-suggestion-hyperband Package: katib-suggestion-hyperopt Package: katib-suggestion-nas-darts Package: katib-suggestion-optuna-enas Package: katib-suggestion-pbt-enas Package: katib-suggestion-skopt-enas Package: kserve-storage-controller Package: kubeflow-jupyter-web-app Package: kubeflow-pipelines-apiserver Package: kubeflow-volumes-web-app Package: open-webui Package: py3-cassandra-medusa Package: py3-requests Package: py3.10-ambassador Package: py3.10-pip-base Package: py3.10-pipenv Package: py3.11-ambassador Package: py3.11-pip-base Package: py3.11-pipenv Package: py3.12-ambassador Package: py3.12-pip-base Package: py3.12-pipenv Package: py3.13-ambassador Package: py3.13-pip-base Package: py3.13-pipenv Package: py3.14-pip-base Package: pypy-3.10 Package: pypy-3.11 Package: python-pip Package: python-requests Package: requests Package: requests Package: requests Package: semgrep Package: superset-6.0 Ecosystem: Alpine Ecosystem: Azure Linux Ecosystem: Debian Ecosystem: PyPI Ecosystem: Ubuntu Ecosystem: Wolfi

Description

Requests is a HTTP library. Prior to version 2.33.0, the `requests.utils.extract_zipped_paths()` utility function uses a predictable filename when extracting files from zip archives into the system temporary directory. If the target file already exists, it is reused without validation. A local attacker with write access to the temp directory could pre-create a malicious file that would be loaded in place of the legitimate one. Standard usage of the Requests library is not affected by this vulnerability. Only applications that call `extract_zipped_paths()` directly are impacted. Starting in version 2.33.0, the library extracts files to a non-deterministic location. If developers are unable to upgrade, they can set `TMPDIR` in their environment to a directory with restricted write access.

Affected products

VendorProductAffectedFixed
psf requests < 2.33.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 requests 2.34.2-1 —
Debian 13 requests No fix yet —
Debian 12 requests No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 python-pip No fix yet —
Ubuntu 26.04 LTS requests 2.32.5+dfsg-1ubuntu1.1 USN-8825-1
Ubuntu 25.10 requests +1 No fix yet —
Ubuntu 24.04 LTS requests 2.31.0+dfsg-1ubuntu1.2 USN-8825-1
Ubuntu 22.04 LTS requests 2.25.1+dfsg-2ubuntu0.4 USN-8825-1
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 26.04 LTS python-pip No fix yet —
Ubuntu Pro 24.04 LTS python-pip No fix yet —
Ubuntu Pro 22.04 LTS python-pip No fix yet —
Ubuntu Pro 20.04 LTS python-pip No fix yet —
Ubuntu Pro 20.04 LTS requests 2.22.0-2ubuntu1.1+esm2 USN-8825-1
Ubuntu Pro 18.04 LTS python-pip No fix yet —
Ubuntu Pro 16.04 LTS python-pip No fix yet —
Ubuntu Pro 14.04 LTS python-pip No fix yet —
ReleasePackageFixed inAdvisory
SLES 12 SP5 python-requests 2.24.0-8.26.1 SUSE-SU-2026:1218-1
SLES 12 python-requests 2.24.0-8.26.1 SUSE-SU-2026:1218-1
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 python-requests 2.32.4-160000.3.1 SUSE-SU-2026:22091-1
SLES 16.0 python-requests 2.32.4-160000.3.1 SUSE-SU-2026:22091-1
SLE Micro 6.2 python-requests 2.32.4-160000.3.1 SUSE-SU-2026:22055-1
SLE Micro 6.1 python-requests 2.32.4-slfo.1.1_2.1 SUSE-SU-2026:21036-1
SLE Micro 6.0 python-requests 2.32.3-3.1 SUSE-SU-2026:21063-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed python-requests 2.33.0-1.1 openSUSE-SU-2026:10455-1
openSUSE Leap 16.0 python-requests 2.32.4-160000.3.1 openSUSE-SU-2026:20926-1
ReleasePackageFixed inAdvisory
Alpine v3.24 py3-requests 2.33.1-r0 —
Alpine v3.23 py3-requests 2.33.1-r0 —
Alpine v3.22 py3-requests 2.33.1-r0 —
Alpine v3.21 py3-requests 2.33.1-r0 —
Alpine v3.20 py3-requests 2.33.1-r0 —

Azure Linux

ReleasePackageFixed inAdvisory
Azure Linux 3 python-requests 2.31.0-4 —

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling airflow-3 3.1.8-r10 —
Wolfi rolling az 2.84.0-r4 —
Wolfi rolling checkov 3.2.511-r0 —
Wolfi rolling confluent-docker-utils 0.0.169-r1 —
Wolfi rolling dask-kubernetes 2026.3.0-r2 —
Wolfi rolling datadog-agent-7.72 7.72.4-r15 —
Wolfi rolling datadog-agent-7.72-core-integrations 7.72.4-r22 —
Wolfi rolling datadog-agent-7.73 7.73.3-r7 —
Wolfi rolling datadog-agent-7.73-core-integrations 7.73.3-r13 —
Wolfi rolling datadog-agent-7.77 +1 7.77.3-r6 —
Wolfi rolling ggshield 1.49.0-r1 —
Wolfi rolling jupyter-base-notebook 7.5.5-r1 —
Wolfi rolling jwt-tool 2.3.0-r5 —
Wolfi rolling k8s-sidecar 2.5.1-r3 —
Wolfi rolling katib-earlystopping 0.19.0-r9 —
Wolfi rolling katib-suggestion-hyperopt +5 0.19.0-r13 —
Wolfi rolling kserve-storage-controller 0.16.0-r24 —
Wolfi rolling kubeflow-jupyter-web-app 1.10.0-r13 —
Wolfi rolling kubeflow-pipelines-apiserver 2.16.0-r12 —
Wolfi rolling kubeflow-volumes-web-app 1.10.0-r12 —
Wolfi rolling open-webui 0.8.12-r2 —
Wolfi rolling py3-cassandra-medusa 0.27.0-r6 —
Wolfi rolling py3.10-ambassador +3 3.10.0-r26 —
Wolfi rolling py3.10-pip-base +4 26.1.1-r0 —
Wolfi rolling py3.10-pipenv +3 2026.6.0-r0 —
Wolfi rolling pypy-3.10 7.3.19-r16 —
Wolfi rolling pypy-3.11 7.3.22-r0 —
Wolfi rolling semgrep 1.157.0-r1 —
Wolfi rolling superset-6.0 6.0.0-r7 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI requests < 2.33.0 2.33.0 GHSA-gc5v-m9x4-r6x2

Advisories 8

References