CVE-2026-25645

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.
Configurations

Configuration 1 (hide)

cpe:2.3:a:python:requests:*:*:*:*:*:*:*:*

History

30 Mar 2026, 14:23

Type Values Removed Values Added
Summary
  • (es) Requests es una biblioteca HTTP. Antes de la versión 2.33.0, la función de utilidad 'requests.utils.extract_zipped_paths()' utiliza un nombre de archivo predecible al extraer archivos de archivos zip en el directorio temporal del sistema. Si el archivo de destino ya existe, se reutiliza sin validación. Un atacante local con acceso de escritura al directorio temporal podría pre-crear un archivo malicioso que se cargaría en lugar del legítimo. El uso estándar de la biblioteca Requests no se ve afectado por esta vulnerabilidad. Solo las aplicaciones que llaman a 'extract_zipped_paths()' directamente se ven afectadas. A partir de la versión 2.33.0, la biblioteca extrae archivos a una ubicación no determinista. Si los desarrolladores no pueden actualizar, pueden establecer 'TMPDIR' en su entorno a un directorio con acceso de escritura restringido.
CPE cpe:2.3:a:python:requests:*:*:*:*:*:*:*:*
First Time Python requests
Python
References () https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7 - () https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7 - Patch
References () https://github.com/psf/requests/releases/tag/v2.33.0 - () https://github.com/psf/requests/releases/tag/v2.33.0 - Release Notes
References () https://github.com/psf/requests/security/advisories/GHSA-gc5v-m9x4-r6x2 - () https://github.com/psf/requests/security/advisories/GHSA-gc5v-m9x4-r6x2 - Vendor Advisory

25 Mar 2026, 23:17

Type Values Removed Values Added
Summary (en) Requests is a HTTP library. Prior to version 2.33.0, the function `requests.utils.extract_zipped_paths()` (which is used by `HTTPAdapter.cert_verify()` to load the CA bundle, often from the `certifi` package's zipapp structure) uses a predictable, non-unique filename (the basename of the file, e.g., `cacert.pem`) when attempting to extract files into the system's temporary directory (`/tmp`). The vulnerable logic performs a check to see if the target file already exists in `/tmp` and re-uses the existing file if found, instead of securely checking the file's content or ensuring atomic, unique extraction. This allows a Local Attacker to pre-create a malicious CA bundle file (e.g., `/tmp/cacert.pem`) before a vulnerable application (running with potentially higher privileges) initializes the `requests` library. Version 2.33.0 contains a patch. (en) 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.

25 Mar 2026, 17:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-03-25 17:16

Updated : 2026-03-30 14:23


NVD link : CVE-2026-25645

Mitre link : CVE-2026-25645

CVE.ORG link : CVE-2026-25645


JSON object : View

Products Affected

python

  • requests
CWE
CWE-377

Insecure Temporary File