Iconos SCW
héroe bg sin separador
Blog

Módulo tarfile de Python: Patraverser Bugkin

Laura Barheid
Publicado el 03 de octubre de 2022
Última actualización el 10 de marzo de 2026

Recientemente, un equipo de investigadores de seguridad anunció que había encontrado un error de hace 15 años en la función de extracción de archivos tar de Python. Esta vulnerabilidad se publicó por primera vez en 2007 y se le asignó el número CVE-2007-4559. Se añadió una nota al documento 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 con las medidas para abordarla. Por eso, aquí en Secure Code Warrior, ofrecemos la oportunidad de simular por sí mismo el abuso de esta vulnerabilidad, verificar directamente su impacto y experimentar de primera mano cómo funciona este error persistente. Esto le permitirá reforzar la protección de sus aplicaciones.

Simular la misión ahora.

Vulnerabilidad: Path traversal durante la extracción de archivos tar

El traversal de pastas o el traversal de directorios se produce cuando se crea una ruta de archivo utilizando entradas de usuario no saneadas, lo que permite a los atacantes acceder a los archivos y sobrescribirlos o ejecutar código arbitrario.

Esta vulnerabilidad existe en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Se trata de paquetes que contienen varios archivos y sus metadatos, y suelen tener la extensión tar.gz o tgz. Cada miembro del archivo contiene un objeto de información TAR con metadatos como el nombre del archivo, la hora de modificación y la propiedad.

El riesgo se debe a que el archivo se puede extraer de nuevo.

Al extraer, se necesita una ruta de escritura para todos los miembros. Esta ubicación se crea combinando la ruta base y el nombre del archivo.

Fragmento de Python Tarfile.py


Una vez creado este camino, se transfiere al archivo tar. Extraer o archivo tar. Extraer todo Función para ejecutar la extracción:

Fragmento de Python Tarfile.py

El problema aquí es que los nombres de los archivos no están saneados. Un atacante podría cambiar el nombre de un archivo para incluir caracteres de traversal de ruta, como dos puntos y dos barras (../). Esto haría que el archivo se moviera fuera de su directorio original y sobrescribiera cualquier archivo. Como resultado, se podría ejecutar código de forma remota, lo que lo haría vulnerable a la explotación.

La vulnerabilidad también se produce en otros escenarios si se conoce el método específico. Además del procesamiento de archivos tar con Python, esta vulnerabilidad también afecta a la extracción de archivos zip. Es posible que la conozcas con otro nombre. Por ejemplo, la vulnerabilidad Zip Slip, ¡que también se ha detectado en otros lenguajes además de Python!

Enlace a la misión 

¿Cómo se pueden reducir los riesgos?

Esta vulnerabilidad se conoce desde hace años, pero los responsables del mantenimiento de Python esperan que se extraiga la función. Lo que se debería hacer. En este caso, algunos podrían decir que «no es un error, sino una función». Lamentablemente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, depende de los desarrolladores sanitizar las entradas no fiables y prevenir las vulnerabilidades de path traversal.

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

Pruében nuestro desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día sobre las prácticas de codificación seguras.

Ver recursos
Ver recursos

Hoy, Pacific Park es como Python's Tartar Gradá hace 15 años. Otoño de 2007, periódico, CVE-2007-4559. Python's Living Ninini Ninipu Pupu Sadamamas.

¿Le interesa más?

Más información

Secure Code Warrior le ayuda 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 gestor de seguridad de aplicaciones, desarrollador, CISO o responsable de seguridad, le ayudamos a reducir los riesgos asociados al código inseguro.

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

Laura Verheyde es desarrolladora de software en Secure Code Warrior y se dedica a investigar vulnerabilidades y crear contenido para Mission Lab y Coding Lab.

Compartir:
marcas de LinkedInSocialx logotipo

Recientemente, un equipo de investigadores de seguridad anunció que había encontrado un error de hace 15 años en la función de extracción de archivos tar de Python. Esta vulnerabilidad se publicó por primera vez en 2007 y se le asignó el número CVE-2007-4559. Se añadió una nota al documento 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 con las medidas para abordarla. Por eso, aquí en Secure Code Warrior, ofrecemos la oportunidad de simular por sí mismo el abuso de esta vulnerabilidad, verificar directamente su impacto y experimentar de primera mano cómo funciona este error persistente. Esto le permitirá reforzar la protección de sus aplicaciones.

Simular la misión ahora.

Vulnerabilidad: Path traversal durante la extracción de archivos tar

El traversal de pastas o el traversal de directorios se produce cuando se crea una ruta de archivo utilizando entradas de usuario no saneadas, lo que permite a los atacantes acceder a los archivos y sobrescribirlos o ejecutar código arbitrario.

Esta vulnerabilidad existe en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Se trata de paquetes que contienen varios archivos y sus metadatos, y suelen tener la extensión tar.gz o tgz. Cada miembro del archivo contiene un objeto de información TAR con metadatos como el nombre del archivo, la hora de modificación y la propiedad.

El riesgo se debe a que el archivo se puede extraer de nuevo.

Al extraer, se necesita una ruta de escritura para todos los miembros. Esta ubicación se crea combinando la ruta base y el nombre del archivo.

Fragmento de Python Tarfile.py


Una vez creado este camino, se transfiere al archivo tar. Extraer o archivo tar. Extraer todo Función para ejecutar la extracción:

Fragmento de Python Tarfile.py

El problema aquí es que los nombres de los archivos no están saneados. Un atacante podría cambiar el nombre de un archivo para incluir caracteres de traversal de ruta, como dos puntos y dos barras (../). Esto haría que el archivo se moviera fuera de su directorio original y sobrescribiera cualquier archivo. Como resultado, se podría ejecutar código de forma remota, lo que lo haría vulnerable a la explotación.

La vulnerabilidad también se produce en otros escenarios si se conoce el método específico. Además del procesamiento de archivos tar con Python, esta vulnerabilidad también afecta a la extracción de archivos zip. Es posible que la conozcas con otro nombre. Por ejemplo, la vulnerabilidad Zip Slip, ¡que también se ha detectado en otros lenguajes además de Python!

Enlace a la misión 

¿Cómo se pueden reducir los riesgos?

Esta vulnerabilidad se conoce desde hace años, pero los responsables del mantenimiento de Python esperan que se extraiga la función. Lo que se debería hacer. En este caso, algunos podrían decir que «no es un error, sino una función». Lamentablemente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, depende de los desarrolladores sanitizar las entradas no fiables y prevenir las vulnerabilidades de path traversal.

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

Pruében nuestro desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día sobre las prácticas de codificación seguras.

Ver recursos
Ver recursos

Para descargar el informe, rellene el siguiente formulario.

Solicitamos su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Tratamos su información personal con el máximo cuidado en todo momento y nunca la vendemos a otras empresas con fines de marketing.

Enviar
Icono de éxito de SCW
Icono de error scw
Para enviar el formulario, habilite las cookies de «Analytics». Una vez completada la configuración, puede volver a deshabilitarlas.

Recientemente, un equipo de investigadores de seguridad anunció que había encontrado un error de hace 15 años en la función de extracción de archivos tar de Python. Esta vulnerabilidad se publicó por primera vez en 2007 y se le asignó el número CVE-2007-4559. Se añadió una nota al documento 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 con las medidas para abordarla. Por eso, aquí en Secure Code Warrior, ofrecemos la oportunidad de simular por sí mismo el abuso de esta vulnerabilidad, verificar directamente su impacto y experimentar de primera mano cómo funciona este error persistente. Esto le permitirá reforzar la protección de sus aplicaciones.

Simular la misión ahora.

Vulnerabilidad: Path traversal durante la extracción de archivos tar

El traversal de pastas o el traversal de directorios se produce cuando se crea una ruta de archivo utilizando entradas de usuario no saneadas, lo que permite a los atacantes acceder a los archivos y sobrescribirlos o ejecutar código arbitrario.

Esta vulnerabilidad existe en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Se trata de paquetes que contienen varios archivos y sus metadatos, y suelen tener la extensión tar.gz o tgz. Cada miembro del archivo contiene un objeto de información TAR con metadatos como el nombre del archivo, la hora de modificación y la propiedad.

El riesgo se debe a que el archivo se puede extraer de nuevo.

Al extraer, se necesita una ruta de escritura para todos los miembros. Esta ubicación se crea combinando la ruta base y el nombre del archivo.

Fragmento de Python Tarfile.py


Una vez creado este camino, se transfiere al archivo tar. Extraer o archivo tar. Extraer todo Función para ejecutar la extracción:

Fragmento de Python Tarfile.py

El problema aquí es que los nombres de los archivos no están saneados. Un atacante podría cambiar el nombre de un archivo para incluir caracteres de traversal de ruta, como dos puntos y dos barras (../). Esto haría que el archivo se moviera fuera de su directorio original y sobrescribiera cualquier archivo. Como resultado, se podría ejecutar código de forma remota, lo que lo haría vulnerable a la explotación.

La vulnerabilidad también se produce en otros escenarios si se conoce el método específico. Además del procesamiento de archivos tar con Python, esta vulnerabilidad también afecta a la extracción de archivos zip. Es posible que la conozcas con otro nombre. Por ejemplo, la vulnerabilidad Zip Slip, ¡que también se ha detectado en otros lenguajes además de Python!

Enlace a la misión 

¿Cómo se pueden reducir los riesgos?

Esta vulnerabilidad se conoce desde hace años, pero los responsables del mantenimiento de Python esperan que se extraiga la función. Lo que se debería hacer. En este caso, algunos podrían decir que «no es un error, sino una función». Lamentablemente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, depende de los desarrolladores sanitizar las entradas no fiables y prevenir las vulnerabilidades de path traversal.

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

Pruében nuestro desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día sobre las prácticas de codificación seguras.

Ver seminario en línea
Comencemos
Más información

Haga clic en el siguiente enlace para descargar el PDF de este recurso.

Secure Code Warrior le ayuda 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 gestor de seguridad de aplicaciones, desarrollador, CISO o responsable de seguridad, le ayudamos a reducir los riesgos asociados al código inseguro.

Mostrar informeReservar una demostración
Ver recursos
Compartir:
marcas de LinkedInSocialx logotipo
¿Le interesa más?

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

Laura Verheyde es desarrolladora de software en Secure Code Warrior y se dedica a investigar vulnerabilidades y crear contenido para Mission Lab y Coding Lab.

Compartir:
marcas de LinkedInSocialx logotipo

Recientemente, un equipo de investigadores de seguridad anunció que había encontrado un error de hace 15 años en la función de extracción de archivos tar de Python. Esta vulnerabilidad se publicó por primera vez en 2007 y se le asignó el número CVE-2007-4559. Se añadió una nota al documento 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 con las medidas para abordarla. Por eso, aquí en Secure Code Warrior, ofrecemos la oportunidad de simular por sí mismo el abuso de esta vulnerabilidad, verificar directamente su impacto y experimentar de primera mano cómo funciona este error persistente. Esto le permitirá reforzar la protección de sus aplicaciones.

Simular la misión ahora.

Vulnerabilidad: Path traversal durante la extracción de archivos tar

El traversal de pastas o el traversal de directorios se produce cuando se crea una ruta de archivo utilizando entradas de usuario no saneadas, lo que permite a los atacantes acceder a los archivos y sobrescribirlos o ejecutar código arbitrario.

Esta vulnerabilidad existe en el módulo tarfile de Python. Los archivos tar (archivos de cinta) son archivos únicos denominados «archivos». Se trata de paquetes que contienen varios archivos y sus metadatos, y suelen tener la extensión tar.gz o tgz. Cada miembro del archivo contiene un objeto de información TAR con metadatos como el nombre del archivo, la hora de modificación y la propiedad.

El riesgo se debe a que el archivo se puede extraer de nuevo.

Al extraer, se necesita una ruta de escritura para todos los miembros. Esta ubicación se crea combinando la ruta base y el nombre del archivo.

Fragmento de Python Tarfile.py


Una vez creado este camino, se transfiere al archivo tar. Extraer o archivo tar. Extraer todo Función para ejecutar la extracción:

Fragmento de Python Tarfile.py

El problema aquí es que los nombres de los archivos no están saneados. Un atacante podría cambiar el nombre de un archivo para incluir caracteres de traversal de ruta, como dos puntos y dos barras (../). Esto haría que el archivo se moviera fuera de su directorio original y sobrescribiera cualquier archivo. Como resultado, se podría ejecutar código de forma remota, lo que lo haría vulnerable a la explotación.

La vulnerabilidad también se produce en otros escenarios si se conoce el método específico. Además del procesamiento de archivos tar con Python, esta vulnerabilidad también afecta a la extracción de archivos zip. Es posible que la conozcas con otro nombre. Por ejemplo, la vulnerabilidad Zip Slip, ¡que también se ha detectado en otros lenguajes además de Python!

Enlace a la misión 

¿Cómo se pueden reducir los riesgos?

Esta vulnerabilidad se conoce desde hace años, pero los responsables del mantenimiento de Python esperan que se extraiga la función. Lo que se debería hacer. En este caso, algunos podrían decir que «no es un error, sino una función». Lamentablemente, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de fuentes desconocidas. Como parte de las prácticas de desarrollo seguro, depende de los desarrolladores sanitizar las entradas no fiables y prevenir las vulnerabilidades de path traversal.

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

Pruében nuestro desafío Python gratuito.

Si desea obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al día sobre las prácticas de codificación seguras.

Índice

Descargar PDF
Ver recursos
¿Le interesa más?

Más información

Secure Code Warrior le ayuda 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 gestor de seguridad de aplicaciones, desarrollador, CISO o responsable de seguridad, le ayudamos a reducir los riesgos asociados al código inseguro.

Reservar una demostración[Descargar]
Compartir:
marcas de LinkedInSocialx logotipo
Centro de recursos

Recursos para empezar

Otras publicaciones
Centro de recursos

Recursos para empezar

Otras publicaciones