Iconos SCW
héroe bg sin separador
Blog

Comprender el error de travesía de ruta en el módulo tarfile de Python

Laura Verheyde
Publicado el 03 de octubre de 2022
Última actualización el 6 de marzo de 2026

Recientemente, un equipo de investigadores en seguridad anunció el descubrimiento de un error de quince años de antigüedad en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se siguió como CVE-2007-4559. Se añadió 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 desconocen la situación y cómo gestionarla. Por eso, aquí en Secure Code Warrior, le ofrecemos la posibilidad de simular usted mismo la explotación de esta vulnerabilidad para comprobar de primera mano su impacto y adquirir experiencia práctica sobre los mecanismos de este error persistente, con el fin de proteger mejor su aplicación.

Prueba ahora la simulación Mission.

La vulnerabilidad: cruce de caminos durante la extracción del archivo tar

La traversée de chemin ou de répertoire se produce cuando se utiliza una entrada de usuario no limpia para crear una ruta de archivo, lo que permite a un atacante acceder a los archivos y sustituirlos, e incluso ejecutar código arbitrario.

La vulnerabilidad existe en el módulo goudron de Python. Un archivo tar (archivo en cinta) es un archivo único, denominado archivo. Agrupa varios archivos con sus metadatos y suele reconocerse por la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse mediante un objeto de información sobre estrellas, 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 ser extraídos nuevamente.

Durante la extracción, cada miembro necesita una ruta en la que escribir. Esta ubicación se crea uniendo la ruta base al nombre del archivo:

Extracto de Python Tarfile.py


Una vez creado este camino, se transmite al tarfile.extract o tarfile.extractall para realizar la extracción:

Extracto de Python Tarfile.py

El problema aquí es la falta de limpieza del nombre del archivo. Un atacante podría renombrar los archivos para incluir caracteres de travesía de ruta, como la barra inclinada (../), lo que sacaría el archivo del directorio en el que se supone que debe estar y sustituiría archivos arbitrarios. Esto podría conducir eventualmente a la ejecución de código remoto, lo que es susceptible de ser explotado.

La vulnerabilidad aparece en otros escenarios, si sabes cómo identificarla. Además de la gestión de archivos tar por Python, la vulnerabilidad existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como vulnerabilidad Zip Slip, que se ha manifestado en otros lenguajes además de Python.

ENLACE A LA MISIÓN 

¿Cómo puede mitigar los riesgos?

Aunque la vulnerabilidad se conoce desde hace años, los responsables de Python consideran que la función de extracción funciona como se supone que debe hacerlo. En este caso, algunos pueden decir «es una función, no un error». Desgraciadamente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Es su responsabilidad limpiar las entradas no fiables para evitar vulnerabilidades relacionadas con el cruce de rutas en el marco de prácticas de desarrollo seguras.

¿Desea obtener más información sobre cómo escribir código seguro y mitigar los riesgos con Python?

Prueba nuestro Desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Coach de code sécurisé para ayudarle a mantenerse al día con las prácticas de codificación seguras.

Mostrar el recurso
Mostrar el recurso

Recientemente, un equipo de investigadores en seguridad anunció el descubrimiento de un error de quince años de antigüedad en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se identificó con el nombre CVE-2007-4559. Se añadió una nota a la documentación oficial de Python, pero el error en sí no se corrigió.

¿Desea obtener más información?

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostración
Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Laura Verheyde
Publicado el 03 de octubre de 2022

Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.

Compartir en:
marcas de LinkedInSocialx logotipo

Recientemente, un equipo de investigadores en seguridad anunció el descubrimiento de un error de quince años de antigüedad en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se siguió como CVE-2007-4559. Se añadió 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 desconocen la situación y cómo gestionarla. Por eso, aquí en Secure Code Warrior, le ofrecemos la posibilidad de simular usted mismo la explotación de esta vulnerabilidad para comprobar de primera mano su impacto y adquirir experiencia práctica sobre los mecanismos de este error persistente, con el fin de proteger mejor su aplicación.

Prueba ahora la simulación Mission.

La vulnerabilidad: cruce de caminos durante la extracción del archivo tar

La traversée de chemin ou de répertoire se produce cuando se utiliza una entrada de usuario no limpia para crear una ruta de archivo, lo que permite a un atacante acceder a los archivos y sustituirlos, e incluso ejecutar código arbitrario.

La vulnerabilidad existe en el módulo goudron de Python. Un archivo tar (archivo en cinta) es un archivo único, denominado archivo. Agrupa varios archivos con sus metadatos y suele reconocerse por la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse mediante un objeto de información sobre estrellas, 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 ser extraídos nuevamente.

Durante la extracción, cada miembro necesita una ruta en la que escribir. Esta ubicación se crea uniendo la ruta base al nombre del archivo:

Extracto de Python Tarfile.py


Una vez creado este camino, se transmite al tarfile.extract o tarfile.extractall para realizar la extracción:

Extracto de Python Tarfile.py

El problema aquí es la falta de limpieza del nombre del archivo. Un atacante podría renombrar los archivos para incluir caracteres de travesía de ruta, como la barra inclinada (../), lo que sacaría el archivo del directorio en el que se supone que debe estar y sustituiría archivos arbitrarios. Esto podría conducir eventualmente a la ejecución de código remoto, lo que es susceptible de ser explotado.

La vulnerabilidad aparece en otros escenarios, si sabes cómo identificarla. Además de la gestión de archivos tar por Python, la vulnerabilidad existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como vulnerabilidad Zip Slip, que se ha manifestado en otros lenguajes además de Python.

ENLACE A LA MISIÓN 

¿Cómo puede mitigar los riesgos?

Aunque la vulnerabilidad se conoce desde hace años, los responsables de Python consideran que la función de extracción funciona como se supone que debe hacerlo. En este caso, algunos pueden decir «es una función, no un error». Desgraciadamente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Es su responsabilidad limpiar las entradas no fiables para evitar vulnerabilidades relacionadas con el cruce de rutas en el marco de prácticas de desarrollo seguras.

¿Desea obtener más información sobre cómo escribir código seguro y mitigar los riesgos con Python?

Prueba nuestro Desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Coach de code sécurisé para ayudarle a mantenerse al día con las prácticas de codificación seguras.

Mostrar el recurso
Mostrar el recurso

Rellene el siguiente formulario para descargar el informe.

Nos gustaría obtener su autorización para enviarle información sobre nuestros productos y/o sobre temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el mayor cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, active las cookies «Analytics». No dude en desactivarlas de nuevo una vez que haya terminado.

Recientemente, un equipo de investigadores en seguridad anunció el descubrimiento de un error de quince años de antigüedad en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se siguió como CVE-2007-4559. Se añadió 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 desconocen la situación y cómo gestionarla. Por eso, aquí en Secure Code Warrior, le ofrecemos la posibilidad de simular usted mismo la explotación de esta vulnerabilidad para comprobar de primera mano su impacto y adquirir experiencia práctica sobre los mecanismos de este error persistente, con el fin de proteger mejor su aplicación.

Prueba ahora la simulación Mission.

La vulnerabilidad: cruce de caminos durante la extracción del archivo tar

La traversée de chemin ou de répertoire se produce cuando se utiliza una entrada de usuario no limpia para crear una ruta de archivo, lo que permite a un atacante acceder a los archivos y sustituirlos, e incluso ejecutar código arbitrario.

La vulnerabilidad existe en el módulo goudron de Python. Un archivo tar (archivo en cinta) es un archivo único, denominado archivo. Agrupa varios archivos con sus metadatos y suele reconocerse por la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse mediante un objeto de información sobre estrellas, 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 ser extraídos nuevamente.

Durante la extracción, cada miembro necesita una ruta en la que escribir. Esta ubicación se crea uniendo la ruta base al nombre del archivo:

Extracto de Python Tarfile.py


Una vez creado este camino, se transmite al tarfile.extract o tarfile.extractall para realizar la extracción:

Extracto de Python Tarfile.py

El problema aquí es la falta de limpieza del nombre del archivo. Un atacante podría renombrar los archivos para incluir caracteres de travesía de ruta, como la barra inclinada (../), lo que sacaría el archivo del directorio en el que se supone que debe estar y sustituiría archivos arbitrarios. Esto podría conducir eventualmente a la ejecución de código remoto, lo que es susceptible de ser explotado.

La vulnerabilidad aparece en otros escenarios, si sabes cómo identificarla. Además de la gestión de archivos tar por Python, la vulnerabilidad existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como vulnerabilidad Zip Slip, que se ha manifestado en otros lenguajes además de Python.

ENLACE A LA MISIÓN 

¿Cómo puede mitigar los riesgos?

Aunque la vulnerabilidad se conoce desde hace años, los responsables de Python consideran que la función de extracción funciona como se supone que debe hacerlo. En este caso, algunos pueden decir «es una función, no un error». Desgraciadamente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Es su responsabilidad limpiar las entradas no fiables para evitar vulnerabilidades relacionadas con el cruce de rutas en el marco de prácticas de desarrollo seguras.

¿Desea obtener más información sobre cómo escribir código seguro y mitigar los riesgos con Python?

Prueba nuestro Desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Coach de code sécurisé para ayudarle a mantenerse al día con las prácticas de codificación seguras.

Ver el seminario web
Comience
Más información

Haga clic en el enlace siguiente y descargue el PDF de este recurso.

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Mostrar el informeReserve una demostración
Descargar el PDF
Mostrar el recurso
Compartir en:
marcas de LinkedInSocialx logotipo
¿Desea obtener más información?

Compartir en:
marcas de LinkedInSocialx logotipo
Autor
Laura Verheyde
Publicado el 03 de octubre de 2022

Laura Verheyde est une développeuse de logiciels chez Secure Code Warrior qui se concentre sur la recherche de vulnérabilités et la création de contenu pour les missions et les laboratoires de codage.

Compartir en:
marcas de LinkedInSocialx logotipo

Recientemente, un equipo de investigadores en seguridad anunció el descubrimiento de un error de quince años de antigüedad en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se siguió como CVE-2007-4559. Se añadió 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 desconocen la situación y cómo gestionarla. Por eso, aquí en Secure Code Warrior, le ofrecemos la posibilidad de simular usted mismo la explotación de esta vulnerabilidad para comprobar de primera mano su impacto y adquirir experiencia práctica sobre los mecanismos de este error persistente, con el fin de proteger mejor su aplicación.

Prueba ahora la simulación Mission.

La vulnerabilidad: cruce de caminos durante la extracción del archivo tar

La traversée de chemin ou de répertoire se produce cuando se utiliza una entrada de usuario no limpia para crear una ruta de archivo, lo que permite a un atacante acceder a los archivos y sustituirlos, e incluso ejecutar código arbitrario.

La vulnerabilidad existe en el módulo goudron de Python. Un archivo tar (archivo en cinta) es un archivo único, denominado archivo. Agrupa varios archivos con sus metadatos y suele reconocerse por la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse mediante un objeto de información sobre estrellas, 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 ser extraídos nuevamente.

Durante la extracción, cada miembro necesita una ruta en la que escribir. Esta ubicación se crea uniendo la ruta base al nombre del archivo:

Extracto de Python Tarfile.py


Una vez creado este camino, se transmite al tarfile.extract o tarfile.extractall para realizar la extracción:

Extracto de Python Tarfile.py

El problema aquí es la falta de limpieza del nombre del archivo. Un atacante podría renombrar los archivos para incluir caracteres de travesía de ruta, como la barra inclinada (../), lo que sacaría el archivo del directorio en el que se supone que debe estar y sustituiría archivos arbitrarios. Esto podría conducir eventualmente a la ejecución de código remoto, lo que es susceptible de ser explotado.

La vulnerabilidad aparece en otros escenarios, si sabes cómo identificarla. Además de la gestión de archivos tar por Python, la vulnerabilidad existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como vulnerabilidad Zip Slip, que se ha manifestado en otros lenguajes además de Python.

ENLACE A LA MISIÓN 

¿Cómo puede mitigar los riesgos?

Aunque la vulnerabilidad se conoce desde hace años, los responsables de Python consideran que la función de extracción funciona como se supone que debe hacerlo. En este caso, algunos pueden decir «es una función, no un error». Desgraciadamente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Es su responsabilidad limpiar las entradas no fiables para evitar vulnerabilidades relacionadas con el cruce de rutas en el marco de prácticas de desarrollo seguras.

¿Desea obtener más información sobre cómo escribir código seguro y mitigar los riesgos con Python?

Prueba nuestro Desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Coach de code sécurisé para ayudarle a mantenerse al día con las prácticas de codificación seguras.

Índice

Descargar el PDF
Mostrar el recurso
¿Desea obtener más información?

Más información

Secure Code Warrior aquí para ayudar a su organización a proteger el código a lo largo de todo el ciclo de desarrollo de software y a crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es responsable de la seguridad de las aplicaciones, desarrollador, responsable de la seguridad informática o cualquier otra persona involucrada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código no seguro.

Reserve una demostraciónDescargar
Compartir en:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones
Centro de recursos

Recursos para ayudarle a empezar

Más publicaciones