Ciberseguridad · 2 min read · Oct 17, 2025
Un error de Python sin parchear de 15 años permite la ejecución de código en 350,000 proyectos

Más de 350,000 repositorios únicos de código abierto se cree que están en riesgo de posibles ciberataques a la cadena de suministro debido a una vulnerabilidad sin parchear de 15 años en el módulo tarfile de Python, que es un módulo predeterminado en cualquier proyecto que use Python.
Actualmente, el módulo tarfile de Python se encuentra extensamente en marcos creados por AWS, Facebook, Google, Intel y Netflix, así como en varias industrias como el desarrollo de software, inteligencia artificial/aprendizaje automático y desarrollo de código, pero también en otros sectores tan diversos como el desarrollo web, seguridad, gestión de TI y medios de comunicación.
La vulnerabilidad, rastreada como CVE-2007-4559 (puntuación CVSS: 6.8), fue descubierta hace 15 años. Este defecto puede ser explotado subiendo un archivo malicioso generado con dos o tres líneas de código simple y permite a los atacantes la ejecución arbitraria de código, o el control de un dispositivo objetivo.
A principios de este año, CVE-2007-4559 fue redescubierto nuevamente por un investigador de vulnerabilidades de Trellix, Kasimir Schulz, mientras investigaba otro problema de seguridad.
“Mientras investigábamos una vulnerabilidad no relacionada, el Centro de Investigación Avanzada de Trellix se topó con una vulnerabilidad en el módulo tarfile de Python. Inicialmente, pensamos que habíamos encontrado una nueva vulnerabilidad de día cero. A medida que profundizamos en el problema, nos dimos cuenta de que en realidad era CVE-2007-4559”, dice la publicación publicada por la firma de seguridad Trellix.
”La vulnerabilidad es un ataque de recorrido de ruta en las funciones extract y extractall en el módulo tarfile que permiten a un atacante sobrescribir archivos arbitrarios al agregar la secuencia “..” a los nombres de archivo en un archivo TAR.”
Si bien la vulnerabilidad originalmente solo se marcó como 6.8, sin embargo, en la mayoría de los casos, un atacante puede obtener ejecución de código a partir de la escritura de archivos. En el video a continuación, Trellix muestra cómo pudieron obtener ejecución de código al explotar Universal Radio Hacker:
Un atacante puede explotar el defecto subiendo un tarfile malicioso de una manera que hace posible escapar del directorio destinado a ser extraído y lograr la ejecución de código, permitiendo al adversario potencialmente apoderarse de un dispositivo objetivo.
“Para que un atacante aproveche esta vulnerabilidad, necesita agregar “..” con el separador para el sistema operativo (“/” o “”) en el nombre del archivo para escapar del directorio al que se supone que debe ser extraído el archivo. El módulo tarfile de Python nos permite hacer exactamente esto:” continúa la publicación.
“El módulo tarfile permite a los usuarios agregar un filtro que se puede usar para analizar y modificar los metadatos de un archivo antes de que se agregue al archivo tar. Esto permite a los atacantes crear sus exploits con tan solo las 6 líneas de código anteriores.”
“Nunca extraiga archivos de fuentes no confiables sin una inspección previa”, dice la documentación de Python para tarfile. “Es posible que se creen archivos fuera de la ruta, por ejemplo, miembros que tienen nombres de archivo absolutos que comienzan con ‘/’ o nombres de archivo con dos puntos ‘..’.”
Además, Trellix ha lanzado una herramienta gratuita llamada Creosote para escanear proyectos vulnerables a CVE-2007-4559, usándola para descubrir la vulnerabilidad que acecha en aplicaciones como Spyder Python IDE y Polemarch.
“Si no se controla, esta vulnerabilidad se ha agregado involuntariamente a cientos de miles de proyectos de código abierto y cerrado en todo el mundo, creando una superficie de ataque sustancial en la cadena de suministro de software”, señaló Doug McKee, Ingeniero Principal y Director de investigación de vulnerabilidades de Trellix.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.