Comprender el error de recorrido en el módulo tarfile de Python
Recientemente, un equipo de investigadores de seguridad ha anunciado el hallazgo de un fallo de hace quince años en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad fue revelada por primera vez en 2007 y rastreada como CVE-2007-4559. Se añadió una nota a la documentación oficial de Python, pero el fallo en sí quedó sin parchear.
Esta vulnerabilidad podría afectar a miles de proyectos de software y, sin embargo, mucha gente no está familiarizada con la situación o con cómo manejarla. Por eso, aquí en Secure Code Warriorte damos la oportunidad de simular la explotación de esta vulnerabilidad para que veas el impacto de primera mano y adquieras experiencia práctica en la mecánica de este error persistente, ¡para que puedas proteger mejor tu aplicación!
Pruebe ahora la Misión simulada.
La vulnerabilidad: el cruce de rutas durante la extracción de archivos tar
El cruce de rutas o directorios se produce cuando se utiliza una entrada de usuario no saneada para construir una ruta de archivo, lo que permite a un atacante acceder y sobrescribir archivos, e incluso ejecutar código arbitrario.
La vulnerabilidad existe en el módulo tarfile de Python. Un archivo tar (archivo de cinta) es un archivo único, llamado archivo. Agrupa múltiples archivos junto con sus metadatos, y normalmente se reconoce por tener la extensión .tar.gz o .tgz. Cada miembro del archivo puede ser representado por un objeto TarInfo, que contiene metadatos, como el nombre del archivo, la hora de modificación, la propiedad, etc.
El riesgo surge de la capacidad de los archivos para ser extraídos de nuevo.
Al ser extraído, cada miembro necesita una ruta para ser escrito. Esta ubicación se crea uniendo la ruta base con el nombre del archivo:

Una vez creada esta ruta, se pasa a la función tarfile.extract o tarfile.extractall para realizar la extracción:

El problema aquí es la falta de sanitización del nombre del archivo. Un atacante podría cambiar el nombre de los archivos para incluir caracteres de cruce de ruta, como la barra de puntos (../), lo que haría que el archivo saliera del directorio en el que debía estar y sobrescribiera archivos arbitrarios. Esto podría llevar eventualmente a la ejecución remota de código, lo cual es propicio para su explotación.
La vulnerabilidad aparece en otros escenarios, si se sabe identificar. Además del manejo de archivos tar por parte de Python, la vulnerabilidad existe en la extracción de archivos zip. Puede que estés familiarizado con esto bajo otro nombre, como la vulnerabilidad zip slip, ¡que se ha manifestado en otros lenguajes además de Python!
¿Cómo se 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 hace lo que se supone que debe hacer. En este caso, algunos pueden decir que "es una característica, no un error". Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Depende de ellos sanear la entrada no confiable para prevenir las vulnerabilidades de cruce de rutas como parte de las prácticas de desarrollo seguro.
¿Quiere saber más sobre cómo escribir código seguro y mitigar los riesgos con Python?
Pruebe gratis nuestro reto de Python.
Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al tanto de las prácticas de codificación seguras.


Recientemente, un equipo de investigadores de seguridad ha anunciado el hallazgo de un fallo de hace quince años en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad fue revelada por primera vez en 2007 y rastreada como CVE-2007-4559. Se añadió una nota a la documentación oficial de Python, pero el fallo en sí quedó sin parchear.

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónLaura 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.


Recientemente, un equipo de investigadores de seguridad ha anunciado el hallazgo de un fallo de hace quince años en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad fue revelada por primera vez en 2007 y rastreada como CVE-2007-4559. Se añadió una nota a la documentación oficial de Python, pero el fallo en sí quedó sin parchear.
Esta vulnerabilidad podría afectar a miles de proyectos de software y, sin embargo, mucha gente no está familiarizada con la situación o con cómo manejarla. Por eso, aquí en Secure Code Warriorte damos la oportunidad de simular la explotación de esta vulnerabilidad para que veas el impacto de primera mano y adquieras experiencia práctica en la mecánica de este error persistente, ¡para que puedas proteger mejor tu aplicación!
Pruebe ahora la Misión simulada.
La vulnerabilidad: el cruce de rutas durante la extracción de archivos tar
El cruce de rutas o directorios se produce cuando se utiliza una entrada de usuario no saneada para construir una ruta de archivo, lo que permite a un atacante acceder y sobrescribir archivos, e incluso ejecutar código arbitrario.
La vulnerabilidad existe en el módulo tarfile de Python. Un archivo tar (archivo de cinta) es un archivo único, llamado archivo. Agrupa múltiples archivos junto con sus metadatos, y normalmente se reconoce por tener la extensión .tar.gz o .tgz. Cada miembro del archivo puede ser representado por un objeto TarInfo, que contiene metadatos, como el nombre del archivo, la hora de modificación, la propiedad, etc.
El riesgo surge de la capacidad de los archivos para ser extraídos de nuevo.
Al ser extraído, cada miembro necesita una ruta para ser escrito. Esta ubicación se crea uniendo la ruta base con el nombre del archivo:

Una vez creada esta ruta, se pasa a la función tarfile.extract o tarfile.extractall para realizar la extracción:

El problema aquí es la falta de sanitización del nombre del archivo. Un atacante podría cambiar el nombre de los archivos para incluir caracteres de cruce de ruta, como la barra de puntos (../), lo que haría que el archivo saliera del directorio en el que debía estar y sobrescribiera archivos arbitrarios. Esto podría llevar eventualmente a la ejecución remota de código, lo cual es propicio para su explotación.
La vulnerabilidad aparece en otros escenarios, si se sabe identificar. Además del manejo de archivos tar por parte de Python, la vulnerabilidad existe en la extracción de archivos zip. Puede que estés familiarizado con esto bajo otro nombre, como la vulnerabilidad zip slip, ¡que se ha manifestado en otros lenguajes además de Python!
¿Cómo se 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 hace lo que se supone que debe hacer. En este caso, algunos pueden decir que "es una característica, no un error". Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Depende de ellos sanear la entrada no confiable para prevenir las vulnerabilidades de cruce de rutas como parte de las prácticas de desarrollo seguro.
¿Quiere saber más sobre cómo escribir código seguro y mitigar los riesgos con Python?
Pruebe gratis nuestro reto de Python.
Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al tanto de las prácticas de codificación seguras.

Recientemente, un equipo de investigadores de seguridad ha anunciado el hallazgo de un fallo de hace quince años en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad fue revelada por primera vez en 2007 y rastreada como CVE-2007-4559. Se añadió una nota a la documentación oficial de Python, pero el fallo en sí quedó sin parchear.
Esta vulnerabilidad podría afectar a miles de proyectos de software y, sin embargo, mucha gente no está familiarizada con la situación o con cómo manejarla. Por eso, aquí en Secure Code Warriorte damos la oportunidad de simular la explotación de esta vulnerabilidad para que veas el impacto de primera mano y adquieras experiencia práctica en la mecánica de este error persistente, ¡para que puedas proteger mejor tu aplicación!
Pruebe ahora la Misión simulada.
La vulnerabilidad: el cruce de rutas durante la extracción de archivos tar
El cruce de rutas o directorios se produce cuando se utiliza una entrada de usuario no saneada para construir una ruta de archivo, lo que permite a un atacante acceder y sobrescribir archivos, e incluso ejecutar código arbitrario.
La vulnerabilidad existe en el módulo tarfile de Python. Un archivo tar (archivo de cinta) es un archivo único, llamado archivo. Agrupa múltiples archivos junto con sus metadatos, y normalmente se reconoce por tener la extensión .tar.gz o .tgz. Cada miembro del archivo puede ser representado por un objeto TarInfo, que contiene metadatos, como el nombre del archivo, la hora de modificación, la propiedad, etc.
El riesgo surge de la capacidad de los archivos para ser extraídos de nuevo.
Al ser extraído, cada miembro necesita una ruta para ser escrito. Esta ubicación se crea uniendo la ruta base con el nombre del archivo:

Una vez creada esta ruta, se pasa a la función tarfile.extract o tarfile.extractall para realizar la extracción:

El problema aquí es la falta de sanitización del nombre del archivo. Un atacante podría cambiar el nombre de los archivos para incluir caracteres de cruce de ruta, como la barra de puntos (../), lo que haría que el archivo saliera del directorio en el que debía estar y sobrescribiera archivos arbitrarios. Esto podría llevar eventualmente a la ejecución remota de código, lo cual es propicio para su explotación.
La vulnerabilidad aparece en otros escenarios, si se sabe identificar. Además del manejo de archivos tar por parte de Python, la vulnerabilidad existe en la extracción de archivos zip. Puede que estés familiarizado con esto bajo otro nombre, como la vulnerabilidad zip slip, ¡que se ha manifestado en otros lenguajes además de Python!
¿Cómo se 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 hace lo que se supone que debe hacer. En este caso, algunos pueden decir que "es una característica, no un error". Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Depende de ellos sanear la entrada no confiable para prevenir las vulnerabilidades de cruce de rutas como parte de las prácticas de desarrollo seguro.
¿Quiere saber más sobre cómo escribir código seguro y mitigar los riesgos con Python?
Pruebe gratis nuestro reto de Python.
Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al tanto de las prácticas de codificación seguras.

Haga clic en el siguiente enlace y descargue el PDF de este recurso.
Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Ver el informeReservar una demostraciónLaura 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.
Recientemente, un equipo de investigadores de seguridad ha anunciado el hallazgo de un fallo de hace quince años en la funcionalidad de extracción de archivos tar de Python. La vulnerabilidad fue revelada por primera vez en 2007 y rastreada como CVE-2007-4559. Se añadió una nota a la documentación oficial de Python, pero el fallo en sí quedó sin parchear.
Esta vulnerabilidad podría afectar a miles de proyectos de software y, sin embargo, mucha gente no está familiarizada con la situación o con cómo manejarla. Por eso, aquí en Secure Code Warriorte damos la oportunidad de simular la explotación de esta vulnerabilidad para que veas el impacto de primera mano y adquieras experiencia práctica en la mecánica de este error persistente, ¡para que puedas proteger mejor tu aplicación!
Pruebe ahora la Misión simulada.
La vulnerabilidad: el cruce de rutas durante la extracción de archivos tar
El cruce de rutas o directorios se produce cuando se utiliza una entrada de usuario no saneada para construir una ruta de archivo, lo que permite a un atacante acceder y sobrescribir archivos, e incluso ejecutar código arbitrario.
La vulnerabilidad existe en el módulo tarfile de Python. Un archivo tar (archivo de cinta) es un archivo único, llamado archivo. Agrupa múltiples archivos junto con sus metadatos, y normalmente se reconoce por tener la extensión .tar.gz o .tgz. Cada miembro del archivo puede ser representado por un objeto TarInfo, que contiene metadatos, como el nombre del archivo, la hora de modificación, la propiedad, etc.
El riesgo surge de la capacidad de los archivos para ser extraídos de nuevo.
Al ser extraído, cada miembro necesita una ruta para ser escrito. Esta ubicación se crea uniendo la ruta base con el nombre del archivo:

Una vez creada esta ruta, se pasa a la función tarfile.extract o tarfile.extractall para realizar la extracción:

El problema aquí es la falta de sanitización del nombre del archivo. Un atacante podría cambiar el nombre de los archivos para incluir caracteres de cruce de ruta, como la barra de puntos (../), lo que haría que el archivo saliera del directorio en el que debía estar y sobrescribiera archivos arbitrarios. Esto podría llevar eventualmente a la ejecución remota de código, lo cual es propicio para su explotación.
La vulnerabilidad aparece en otros escenarios, si se sabe identificar. Además del manejo de archivos tar por parte de Python, la vulnerabilidad existe en la extracción de archivos zip. Puede que estés familiarizado con esto bajo otro nombre, como la vulnerabilidad zip slip, ¡que se ha manifestado en otros lenguajes además de Python!
¿Cómo se 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 hace lo que se supone que debe hacer. En este caso, algunos pueden decir que "es una característica, no un error". Por desgracia, los desarrolladores no siempre pueden evitar extraer archivos tar o zip de una fuente desconocida. Depende de ellos sanear la entrada no confiable para prevenir las vulnerabilidades de cruce de rutas como parte de las prácticas de desarrollo seguro.
¿Quiere saber más sobre cómo escribir código seguro y mitigar los riesgos con Python?
Pruebe gratis nuestro reto de Python.
Si está interesado en obtener más directrices de codificación gratuitas, consulte Secure Code Coach, que le ayudará a mantenerse al tanto de las prácticas de codificación seguras.
Índice

Secure Code Warrior está a disposición de su organización para ayudarle a proteger el código a lo largo de todo el ciclo de vida de desarrollo de software y crear una cultura en la que la ciberseguridad sea una prioridad. Tanto si es director de AppSec, desarrollador, CISO o cualquier persona implicada en la seguridad, podemos ayudar a su organización a reducir los riesgos asociados a un código inseguro.
Reservar una demostraciónDescargarRecursos para empezar
Panorama de la gestión de riesgos de los promotores
La gestión de riesgos del desarrollador es un enfoque holístico y proactivo de la seguridad de las aplicaciones, centrado en quienes contribuyen al código y no en los bits y bytes de la propia capa de la aplicación.
Seguridad desde el diseño: Definición de las mejores prácticas, capacitación de los desarrolladores y evaluación comparativa de los resultados de la seguridad preventiva
En este documento de investigación, los cofundadores Secure Code Warrior , Pieter Danhieux y el Dr. Matias Madou, Ph.D., junto con los expertos colaboradores, Chris Inglis, ex Director Nacional Cibernético de EE.UU. (ahora Asesor Estratégico de Paladin Capital Group), y Devin Lynch, Director Senior, Paladin Global Institute, revelarán los hallazgos clave de más de veinte entrevistas en profundidad con líderes de seguridad empresarial, incluyendo CISOs, un VP de Seguridad de Aplicaciones y profesionales de seguridad de software.
Evaluación comparativa de las competencias en materia de seguridad: optimización del diseño seguro en la empresa
Encontrar datos significativos sobre el éxito de las iniciativas Secure-by-Design es notoriamente difícil. Los responsables de la seguridad de la información se enfrentan a menudo al reto de demostrar el rendimiento de la inversión (ROI) y el valor empresarial de las actividades de los programas de seguridad, tanto a nivel de las personas como de la empresa. Por no mencionar que a las empresas les resulta especialmente difícil obtener información sobre cómo se comparan sus organizaciones con los estándares actuales del sector. La Estrategia Nacional de Ciberseguridad del Presidente desafió a las partes interesadas a "adoptar la seguridad y la resiliencia desde el diseño". La clave para que las iniciativas de seguridad por diseño funcionen no es sólo dotar a los desarrolladores de las habilidades necesarias para garantizar un código seguro, sino también garantizar a los reguladores que esas habilidades están en su lugar. En esta presentación, compartimos una miríada de datos cualitativos y cuantitativos, derivados de múltiples fuentes primarias, incluidos puntos de datos internos recogidos de más de 250.000 desarrolladores, opiniones de clientes basadas en datos y estudios públicos. Aprovechando esta agregación de puntos de datos, pretendemos comunicar una visión del estado actual de las iniciativas Secure-by-Design en múltiples verticales. El informe detalla por qué este espacio está actualmente infrautilizado, el impacto significativo que un programa de mejora de las competencias puede tener en la mitigación de los riesgos de ciberseguridad y el potencial para eliminar categorías de vulnerabilidades de un código base.
Servicios profesionales - Acelerar con experiencia
El equipo de servicios de estrategia de programas (PSS) de Secure Code Warriorle ayuda a crear, mejorar y optimizar su programa de codificación segura. Tanto si empieza de cero como si está perfeccionando su enfoque, nuestros expertos le proporcionarán orientación personalizada.
Recursos para empezar
Revelado: Cómo define el sector cibernético la seguridad por diseño
En nuestro último libro blanco, nuestros cofundadores, Pieter Danhieux y el doctor Matias Madou, se sentaron con más de veinte líderes de seguridad empresarial, incluidos CISO, líderes de AppSec y profesionales de la seguridad, para averiguar las piezas clave de este rompecabezas y descubrir la realidad detrás del movimiento Secure by Design. Se trata de una ambición compartida por todos los equipos de seguridad, pero no de un libro de jugadas compartido.
¿Vibe Coding va a convertir tu código en una fiesta de fraternidad?
Vibe Coding es como una fiesta de fraternidad universitaria, y la IA es la pieza central de todos los festejos, el barril. Es muy divertido dar rienda suelta a la creatividad y ver adónde te lleva tu imaginación, pero después de unas cuantas borracheras, beber (o usar IA) con moderación es, sin duda, la solución más segura a largo plazo.