Plataforma
python
Componente
tarfile
Corregido en
3.10.18
3.11.13
3.12.11
3.13.4
3.14.0b3
La vulnerabilidad CVE-2025-4138 afecta al módulo tarfile de Python, permitiendo a un atacante manipular metadatos de archivos y extraer contenido fuera del directorio de destino. Esta falla se produce al usar el parámetro filter con valores específicos como "data" o "tar". Las versiones afectadas son Python 3.10.0 hasta 3.14.0b3; la solución recomendada es actualizar a la versión 3.14.0b3 o implementar filtros de extracción más seguros.
Un atacante podría explotar esta vulnerabilidad para escribir archivos arbitrarios en el sistema, potencialmente comprometiendo la integridad y confidencialidad de los datos. Al ignorar los filtros de extracción, un atacante puede crear enlaces simbólicos que apunten a ubicaciones fuera del directorio de destino, permitiendo la modificación de archivos críticos del sistema. La manipulación de metadatos también podría usarse para ocultar archivos maliciosos o alterar la información sobre los archivos legítimos, dificultando la detección y respuesta a incidentes. Esta vulnerabilidad es particularmente preocupante en entornos donde se procesan archivos tar no confiables.
La vulnerabilidad fue publicada el 3 de junio de 2025. No se ha reportado explotación activa en entornos de producción, pero la disponibilidad de la descripción técnica de la vulnerabilidad aumenta el riesgo de que sea explotada. Se recomienda monitorear las fuentes de inteligencia de amenazas para detectar posibles campañas de explotación. La vulnerabilidad no se ha incluido en el Catálogo de Vulnerabilidades Conocidas (KEV) de CISA al momento de esta redacción.
Systems using Python 3.10.0 through 3.14.0b3 that process untrusted tar archives are at risk. This includes web applications, automation scripts, and any system that relies on the tarfile module to extract archives from external sources. Shared hosting environments where multiple users can upload files are particularly vulnerable.
• python / server:
find / -name '*tar.gz' -o -name '*tar.bz2' -o -name '*tar'• python / supply-chain:
import os
import tarfile
def check_tarfile_extraction(filepath, destination):
try:
with tarfile.open(filepath, 'r') as tar:
tar.extractall(path=destination, filter='data') # Vulnerable code
return False # No vulnerability detected
except Exception as e:
return True # Vulnerability detected
# Example usage (replace with actual filepaths)
filepath = '/path/to/your/archive.tar.gz'
destination = '/tmp/extraction_test'
if check_tarfile_extraction(filepath, destination):
print(f"Potential vulnerability detected in {filepath}")
else:
print(f"No vulnerability detected in {filepath}")disclosure
Estado del Exploit
EPSS
0.10% (27% percentil)
CISA SSVC
Vector CVSS
La mitigación principal es actualizar a Python 3.14.0b3, donde el valor predeterminado del parámetro filter ha sido modificado para mejorar la seguridad. Si la actualización no es posible de inmediato, se recomienda evitar el uso del parámetro filter con valores "data" o "tar". Alternativamente, implemente filtros de extracción personalizados que validen rigurosamente las rutas de los archivos antes de la extracción. Considere el uso de herramientas de análisis de archivos tar para identificar posibles amenazas antes de procesarlos. Revise y actualice las políticas de seguridad para restringir el acceso a archivos tar no confiables.
Actualice la biblioteca CPython a la versión 3.10.18 o superior, 3.11.13 o superior, 3.12.11 o superior, 3.13.4 o superior, o 3.14.0b3 o superior. Evite usar la función `TarFile.extractall()` o `TarFile.extract()` con el parámetro `filter=` configurado en 'data' o 'tar' con archivos tar no confiables.
Análisis de vulnerabilidades y alertas críticas directamente en tu correo.
CVE-2025-4138 is a directory traversal vulnerability in Python's tarfile module affecting versions 3.10.0–3.14.0b3. It allows attackers to extract files outside the intended directory when using the 'data' or 'tar' filter.
You are affected if you are using Python versions 3.10.0 through 3.14.0b3 and extracting untrusted tar archives using TarFile.extractall() or TarFile.extract() with the filter='data' or filter='tar' parameter.
Upgrade to Python 3.14.0b3 or later. Alternatively, avoid using the filter parameter with 'data' or 'tar' when extracting untrusted archives.
No active exploitation has been confirmed, but the vulnerability's ease of exploitation makes it a potential target.
Refer to the Python security advisory for CVE-2025-4138 on the Python website (https://docs.python.org/3/library/tarfile.html#tarfile-extraction-filter).
Sube tu archivo de dependencias y detecta esta y otras CVEs al instante.
Sube tu archivo requirements.txt y te decimos al instante si estás afectado.