Comprenda el error de recorrido de rutas en el módulo tar file de Python

Recientemente, un equipo de investigadores de seguridad anunciaron el hallazgo de un error de hace quince años en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se rastreó como CVE2007-4559. Se agregó una nota a la documentación oficial de Python, pero el error en sí no se corrigió.
Esta vulnerabilidad podría afectar a miles de proyectos de software, pero muchas personas no están familiarizadas con la situación ni con la forma de manejarla. Por eso, aquí en Secure Code Warrior, te damos la oportunidad de simular tú mismo la explotación de esta vulnerabilidad para ver el impacto de primera mano y obtener experiencia práctica en la mecánica de este error persistente, ¡para que puedas proteger mejor tu aplicación!
Prueba el simulado Misión ahora.
La vulnerabilidad: recorrido de ruta durante la extracción del archivo tar
El recorrido de rutas o directorios se produce cuando se utilizan entradas de usuario no desinfectadas para construir una ruta de archivo, lo que permite a un atacante acceder a los archivos y sobrescribirlos, e incluso ejecutar código arbitrario.
La vulnerabilidad existe en Python archivo de alquitrán módulo. Un archivo tar (archivo de cinta) es un archivo único, llamado archivo. Combina varios archivos junto con sus metadatos y, por lo general, se reconoce por tener el .tar.gz o .tgz extensión. Cada miembro del archivo puede estar representado por un Información del TAR objeto, que contiene metadatos, como el nombre del archivo, la hora de modificación, la propiedad, etc.
El riesgo proviene de la capacidad de los archivos para volver a extraerse.
Cuando se extrae, cada miembro necesita una ruta en la que escribir. Esta ubicación se crea uniendo la ruta base con el nombre del archivo:

Una vez que se crea esta ruta, se pasa a archivo tar.extract o archivo tar.extractall funciones para realizar la extracción:

El problema aquí es la falta de desinfección del nombre del archivo. Un atacante podría cambiar el nombre de los archivos para incluir caracteres que recorran rutas, como puntopunto/barra oblicua (../), lo que haría que el archivo saliera del directorio en el que estaba destinado y sobrescribiera archivos arbitrarios. Con el tiempo, esto podría conducir a la ejecución remota de código, lo que está listo para ser explotado.
La vulnerabilidad aparece en otros escenarios, si sabe cómo identificarla. Además de la gestión de los archivos tar por parte de Python, la vulnerabilidad existe en extracción de archivos zip. Es posible que esté familiarizado con esto con otro nombre, como vulnerabilidad zip slip, ¡que se ha manifestado en otros lenguajes además de Python!
¿Cómo puede mitigar el riesgo?
A pesar de que la vulnerabilidad se conoce desde hace años, los mantenedores de Python consideran que la funcionalidad de extracción está funcionando lo que se supone que debe hacer. En este caso, algunos pueden decir que «es una función, no un error». Desafortunadamente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Como parte de las prácticas de desarrollo seguro, son ellos los que tienen que desinfectar la información que no es de confianza para evitar que las vulnerabilidades se desvíen de rutas.
¿Quieres obtener más información sobre cómo escribir código seguro y mitigar los riesgos con Python?
Prueba nuestro Python challenge gratis.
Si estás interesado en obtener más pautas de codificación gratuitas, consulta Entrenador de código seguro para ayudarlo a mantenerse al tanto de las prácticas de codificación seguras.
Govern AI-driven development before it ships
Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.
Explore more blogs
Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

One Culture of Security: How Sage built their security champions program with agile secure code learning
Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Post-Quantum Cryptography: Quantum Computers Will Break Today’s Encryption – Are You Ready?
Post-quantum cryptography (PQC) is critical for protecting data from quantum computing threats. Learn how “harvest now, decrypt later” exposes risk and how developers can prepare for quantum-safe security.

Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI
While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.
Secure AI-driven development before it ships
See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.