Vulnerabilidad en el módulo TarFile de Python que permite escritura en cualquier parte del sistema de archivos

En el módulo tarfile de Python que se incluye en la distribución estándar, que proporciona funciones para leer y escribir archivos tar, se han identificado cinco vulnerabilidades, una de las cuales tiene un nivel crítico de peligrosidad. Las vulnerabilidades se han corregido en las versiones Python 3.13.4 y 3.12.11. La vulnerabilidad más peligrosa (CVE-2025-4517) permite que, al descomprimir un archivo especialmente diseñado, se escriban archivos en cualquier parte del sistema de archivos. En los scripts del sistema que utilizan tarfile y se ejecutan con privilegios de root (por ejemplo, en herramientas para trabajar con paquetes y contenedores aislados), la vulnerabilidad puede ser utilizada para elevar privilegios o escapar del contenedor aislado.

La vulnerabilidad afecta a los proyectos en los que el módulo tarfile se utiliza para descomprimir archivos tar no confiables, utilizando las funciones TarFile.extractall() o TarFile.extract() con el parámetro 'filter=' establecido en 'data' o 'tar'. La vulnerabilidad es causada por un manejo incorrecto de la secuencia '..' en el nombre del enlace. El problema afecta las versiones de Python a partir de la 3.12. El modo 'filter="data"' se aplica por defecto en la rama de Python 3.14, que está en desarrollo (el lanzamiento está previsto para otoño).

Otras vulnerabilidades en TarFile:

  • CVE-2025-4330 - posibilidad de eludir el filtro de datos extraídos, lo que puede llevar a la extracción de un enlace simbólico desde el archivo que apunta fuera del directorio base en el que se está descomprimiendo.
  • CVE-2025-4138 - posibilidad de crear enlaces simbólicos arbitrarios fuera del directorio base al descomprimir archivos con el parámetro 'filter="data"'.
  • CVE-2024-12718 - posibilidad de modificar metadatos (como la hora de modificación) de archivos fuera del directorio base al descomprimir archivos con el parámetro 'filter="data"' o cambiar permisos (chmod) al descomprimir archivos con el parámetro 'filter="tar"'.
  • CVE-2025-4435 - si al descomprimir un archivo el parámetro TarFile.errorlevel está establecido en 0, los elementos del archivo que caen bajo el filtro especificado se descomprimían, en contra de la documentación, en lugar de ser ignorados.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster