Iconos SCW
héroe bg sin separador
Blog

Comprender los errores de recorrido de rutas en el módulo tarfile de Python

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

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

Esta vulnerabilidad puede afectar a miles de proyectos de software, pero muchas personas no están familiarizadas con la situación ni saben cómo abordarla. Por eso, en Security Code Warrior, le ofrecemosla oportunidad de simular personalmente el aprovechamiento de esta vulnerabilidad para que pueda ver sus efectos con sus propios ojos y experimentar de primera mano el mecanismo de este error persistente, ¡de modo que pueda proteger mejor sus aplicaciones!

Prueba la simulación Misión ahora.

Vulnerabilidad: Recorrido de rutas durante la extracción de archivos tar

Cuando se utilizan entradas de usuario sin revisar para construir rutas de archivo, se produce un recorrido de rutas o directorios, lo que permite a los atacantes obtener acceso y sobrescribir archivos, o incluso ejecutar código arbitrario.

La vulnerabilidad se encuentra en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Agrupan varios archivos y sus metadatos, y suelen identificarse con la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse con un objeto TarInfo, que contiene metadatos como el nombre del archivo, la hora de modificación, la propiedad, etc.

El riesgo proviene de la posibilidad de volver a extraer los archivos.

Al extraer, cada miembro debe escribir la ruta. Esta ubicación se crea conectando la ruta básica con el nombre del archivo:

Fragmento de Python Tarfile.py


Una vez creada esta ruta, se pasará a tarfile.extra o tarfile.extall para ejecutar la función de extracción:

Fragmento de Python Tarfile.py

El problema aquí es la falta de limpieza de los nombres de los archivos. Los atacantes pueden renombrar los archivos para incluir caracteres de recorrido de ruta, como barras inclinadas (../), lo que provocará que los archivos se salgan del directorio en el que deberían estar y sobrescriban cualquier archivo. Esto podría acabar provocando la ejecución remota de código, y el momento para aprovecharlo ya ha llegado.

Si sabes cómo identificar esta vulnerabilidad, verás que aparece en otros contextos. Además del procesamiento de archivos tar por parte de Python, esta vulnerabilidad también existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como «vulnerabilidad de archivos comprimidos», ¡que ya se ha reflejado en otros lenguajes además de Python!

Enlace a la tarea 

¿Cómo reducir el riesgo?

Aunque esta vulnerabilidad se conoce desde hace años, los mantenedores de Python siguen considerando que la función de extracción funciona como debería. En este caso, se podría argumentar que «se trata de una función, no de un error». Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, tienen la responsabilidad de limpiar las entradas no fiables para evitar vulnerabilidades de recorrido de rutas.

¿Quieres saber más sobre cómo escribir código seguro y reducir riesgos con Python?

Prueba nuestro desafío gratuito de Python.

Si está interesado en obtener más guías de programación gratuitas, consulte el Entrenador de código seguro para dominar las prácticas de codificación segura.

Ver recursos
Ver recursos

Recientemente, un grupo de investigadores de seguridad anunció que había descubierto un error de quince años de antigüedad en la función de extracción de archivos tar de Python. La vulnerabilidad se reveló por primera vez en 2007 y se rastreó como CVE-2007-4559. Se añadió una nota en la documentación oficial de Python, pero el error en sí no se corrigió.

¿Te interesa saber más?

Más información

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

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

Laura Verheyde es una desarrolladora de software en Secure Code Warrior centrada en la investigación de vulnerabilidades y la creación de contenidos para Missions y Coding labs.

Compartir en:
marcas de LinkedInSocialx logotipo

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

Esta vulnerabilidad puede afectar a miles de proyectos de software, pero muchas personas no están familiarizadas con la situación ni saben cómo abordarla. Por eso, en Security Code Warrior, le ofrecemosla oportunidad de simular personalmente el aprovechamiento de esta vulnerabilidad para que pueda ver sus efectos con sus propios ojos y experimentar de primera mano el mecanismo de este error persistente, ¡de modo que pueda proteger mejor sus aplicaciones!

Prueba la simulación Misión ahora.

Vulnerabilidad: Recorrido de rutas durante la extracción de archivos tar

Cuando se utilizan entradas de usuario sin revisar para construir rutas de archivo, se produce un recorrido de rutas o directorios, lo que permite a los atacantes obtener acceso y sobrescribir archivos, o incluso ejecutar código arbitrario.

La vulnerabilidad se encuentra en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Agrupan varios archivos y sus metadatos, y suelen identificarse con la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse con un objeto TarInfo, que contiene metadatos como el nombre del archivo, la hora de modificación, la propiedad, etc.

El riesgo proviene de la posibilidad de volver a extraer los archivos.

Al extraer, cada miembro debe escribir la ruta. Esta ubicación se crea conectando la ruta básica con el nombre del archivo:

Fragmento de Python Tarfile.py


Una vez creada esta ruta, se pasará a tarfile.extra o tarfile.extall para ejecutar la función de extracción:

Fragmento de Python Tarfile.py

El problema aquí es la falta de limpieza de los nombres de los archivos. Los atacantes pueden renombrar los archivos para incluir caracteres de recorrido de ruta, como barras inclinadas (../), lo que provocará que los archivos se salgan del directorio en el que deberían estar y sobrescriban cualquier archivo. Esto podría acabar provocando la ejecución remota de código, y el momento para aprovecharlo ya ha llegado.

Si sabes cómo identificar esta vulnerabilidad, verás que aparece en otros contextos. Además del procesamiento de archivos tar por parte de Python, esta vulnerabilidad también existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como «vulnerabilidad de archivos comprimidos», ¡que ya se ha reflejado en otros lenguajes además de Python!

Enlace a la tarea 

¿Cómo reducir el riesgo?

Aunque esta vulnerabilidad se conoce desde hace años, los mantenedores de Python siguen considerando que la función de extracción funciona como debería. En este caso, se podría argumentar que «se trata de una función, no de un error». Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, tienen la responsabilidad de limpiar las entradas no fiables para evitar vulnerabilidades de recorrido de rutas.

¿Quieres saber más sobre cómo escribir código seguro y reducir riesgos con Python?

Prueba nuestro desafío gratuito de Python.

Si está interesado en obtener más guías de programación gratuitas, consulte el Entrenador de código seguro para dominar las prácticas de codificación segura.

Ver recursos
Ver recursos

Rellene el siguiente formulario para descargar el informe.

Nos gustaría obtener su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación de seguridad. Trataremos su información personal con el máximo cuidado y nunca la venderemos a otras empresas con fines comerciales.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, habilite las cookies de análisis. Una vez completado, puede desactivarlas nuevamente si lo desea.

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

Esta vulnerabilidad puede afectar a miles de proyectos de software, pero muchas personas no están familiarizadas con la situación ni saben cómo abordarla. Por eso, en Security Code Warrior, le ofrecemosla oportunidad de simular personalmente el aprovechamiento de esta vulnerabilidad para que pueda ver sus efectos con sus propios ojos y experimentar de primera mano el mecanismo de este error persistente, ¡de modo que pueda proteger mejor sus aplicaciones!

Prueba la simulación Misión ahora.

Vulnerabilidad: Recorrido de rutas durante la extracción de archivos tar

Cuando se utilizan entradas de usuario sin revisar para construir rutas de archivo, se produce un recorrido de rutas o directorios, lo que permite a los atacantes obtener acceso y sobrescribir archivos, o incluso ejecutar código arbitrario.

La vulnerabilidad se encuentra en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Agrupan varios archivos y sus metadatos, y suelen identificarse con la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse con un objeto TarInfo, que contiene metadatos como el nombre del archivo, la hora de modificación, la propiedad, etc.

El riesgo proviene de la posibilidad de volver a extraer los archivos.

Al extraer, cada miembro debe escribir la ruta. Esta ubicación se crea conectando la ruta básica con el nombre del archivo:

Fragmento de Python Tarfile.py


Una vez creada esta ruta, se pasará a tarfile.extra o tarfile.extall para ejecutar la función de extracción:

Fragmento de Python Tarfile.py

El problema aquí es la falta de limpieza de los nombres de los archivos. Los atacantes pueden renombrar los archivos para incluir caracteres de recorrido de ruta, como barras inclinadas (../), lo que provocará que los archivos se salgan del directorio en el que deberían estar y sobrescriban cualquier archivo. Esto podría acabar provocando la ejecución remota de código, y el momento para aprovecharlo ya ha llegado.

Si sabes cómo identificar esta vulnerabilidad, verás que aparece en otros contextos. Además del procesamiento de archivos tar por parte de Python, esta vulnerabilidad también existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como «vulnerabilidad de archivos comprimidos», ¡que ya se ha reflejado en otros lenguajes además de Python!

Enlace a la tarea 

¿Cómo reducir el riesgo?

Aunque esta vulnerabilidad se conoce desde hace años, los mantenedores de Python siguen considerando que la función de extracción funciona como debería. En este caso, se podría argumentar que «se trata de una función, no de un error». Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, tienen la responsabilidad de limpiar las entradas no fiables para evitar vulnerabilidades de recorrido de rutas.

¿Quieres saber más sobre cómo escribir código seguro y reducir riesgos con Python?

Prueba nuestro desafío gratuito de Python.

Si está interesado en obtener más guías de programación gratuitas, consulte el Entrenador de código seguro para dominar las prácticas de codificación segura.

Ver el seminario web
Empecemos.
Más información

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

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Ver informeReservar una demostración
Ver recursos
Compartir en:
marcas de LinkedInSocialx logotipo
¿Te interesa saber más?

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

Laura Verheyde es una desarrolladora de software en Secure Code Warrior centrada en la investigación de vulnerabilidades y la creación de contenidos para Missions y Coding labs.

Compartir en:
marcas de LinkedInSocialx logotipo

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

Esta vulnerabilidad puede afectar a miles de proyectos de software, pero muchas personas no están familiarizadas con la situación ni saben cómo abordarla. Por eso, en Security Code Warrior, le ofrecemosla oportunidad de simular personalmente el aprovechamiento de esta vulnerabilidad para que pueda ver sus efectos con sus propios ojos y experimentar de primera mano el mecanismo de este error persistente, ¡de modo que pueda proteger mejor sus aplicaciones!

Prueba la simulación Misión ahora.

Vulnerabilidad: Recorrido de rutas durante la extracción de archivos tar

Cuando se utilizan entradas de usuario sin revisar para construir rutas de archivo, se produce un recorrido de rutas o directorios, lo que permite a los atacantes obtener acceso y sobrescribir archivos, o incluso ejecutar código arbitrario.

La vulnerabilidad se encuentra en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Agrupan varios archivos y sus metadatos, y suelen identificarse con la extensión .tar.gz o .tgz. Cada miembro del archivo puede representarse con un objeto TarInfo, que contiene metadatos como el nombre del archivo, la hora de modificación, la propiedad, etc.

El riesgo proviene de la posibilidad de volver a extraer los archivos.

Al extraer, cada miembro debe escribir la ruta. Esta ubicación se crea conectando la ruta básica con el nombre del archivo:

Fragmento de Python Tarfile.py


Una vez creada esta ruta, se pasará a tarfile.extra o tarfile.extall para ejecutar la función de extracción:

Fragmento de Python Tarfile.py

El problema aquí es la falta de limpieza de los nombres de los archivos. Los atacantes pueden renombrar los archivos para incluir caracteres de recorrido de ruta, como barras inclinadas (../), lo que provocará que los archivos se salgan del directorio en el que deberían estar y sobrescriban cualquier archivo. Esto podría acabar provocando la ejecución remota de código, y el momento para aprovecharlo ya ha llegado.

Si sabes cómo identificar esta vulnerabilidad, verás que aparece en otros contextos. Además del procesamiento de archivos tar por parte de Python, esta vulnerabilidad también existe en la extracción de archivos zip. Quizás la conozcas con otro nombre, como «vulnerabilidad de archivos comprimidos», ¡que ya se ha reflejado en otros lenguajes además de Python!

Enlace a la tarea 

¿Cómo reducir el riesgo?

Aunque esta vulnerabilidad se conoce desde hace años, los mantenedores de Python siguen considerando que la función de extracción funciona como debería. En este caso, se podría argumentar que «se trata de una función, no de un error». Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, tienen la responsabilidad de limpiar las entradas no fiables para evitar vulnerabilidades de recorrido de rutas.

¿Quieres saber más sobre cómo escribir código seguro y reducir riesgos con Python?

Prueba nuestro desafío gratuito de Python.

Si está interesado en obtener más guías de programación gratuitas, consulte el Entrenador de código seguro para dominar las prácticas de codificación segura.

Índice

Descargar PDF
Ver recursos
¿Te interesa saber más?

Más información

Secure Code Warrior puede ayudar a su organización a proteger el código a lo largo de todo el ciclo de vida del desarrollo de software y a crear una cultura que dé prioridad a la ciberseguridad. Tanto si es usted responsable de seguridad de aplicaciones, desarrollador, director de seguridad de la información o cualquier otra persona relacionada con la seguridad, podemos ayudar a su organización a reducir los riesgos asociados al código inseguro.

Reservar 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