Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en PyInstaller (CVE-2023-49797)

Gravedad CVSS v3.1:
ALTA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
09/12/2023
Última modificación:
19/12/2023

Descripción

PyInstaller agrupa una aplicación Python y todas sus dependencias en un solo paquete. Una aplicación creada por PyInstaller, elevada como proceso privilegiado, puede ser engañada por un atacante sin privilegios para que elimine archivos a los que el usuario sin privilegios no tendría acceso de otro modo. Un usuario se ve afectado si se cumplen **todos** los siguientes requisitos: 1. El usuario ejecuta una aplicación que contiene `matplotlib` o `win32com`. 2. La aplicación se ejecuta como administrador (o al menos como usuario con mayores privilegios que el atacante). 3. El directorio temporal del usuario no está bloqueado para ese usuario específico (muy probablemente debido a que las variables de entorno `TMP`/`TEMP` apuntan a una ubicación desprotegida, arbitraria y no predeterminada). Ya sea: A. El atacante puede programar con mucho cuidado el reemplazo de un archivo temporal con un enlace simbólico. Este cambio debe ocurrir exactamente entre la verificación de enlace simbólico incorporada de `shutil.rmtree()` y la eliminación misma. B: La aplicación fue creada con Python 3.7.x o anterior, que no tiene protección contra enlaces de Directory Junctions. La vulnerabilidad se abordó en el PR #7827 que corresponde a `pyinstaller >= 5.13.1`. Se recomienda a los usuarios que actualicen. No se conocen workarounds para esta vulnerabilidad.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:a:pyinstaller:pyinstaller:*:*:*:*:*:*:*:* 5.13.1 (excluyendo)