Una vulnerabilidad en el lenguaje de programación Python que se ha pasado por alto durante 15 años ahora vuelve a ser el centro de atención, ya que probablemente afecta a más de 350.000 repositorios de código abierto y puede conducir a la ejecución de código.

Revelado en 2007 y etiquetado como CVE-2007-4559, el problema de seguridad nunca recibió la atención necesaria ni el parche, la única mitigación proporcionada fue una actualización de la documentación que advertía a los desarrolladores sobre el riesgo.

La vulnerabilidad se encuentra en el paquete tarfile de Python, en el código que utiliza la función tarfile.extract() no sanitiazada o en los valores predeterminados integrados de tarfile.extractall(). Es un error de path traversal que permite a un atacante sobrescribir archivos de forma arbitraria.

Los detalles técnicos de CVE-2007-4559 han estado disponibles desde el informe inicial en agosto de 2007. Si bien no hay informes sobre el aprovechamiento del error en los ataques, representa un riesgo en la cadena de suministro de software.

A principios de este año, mientras investigaba otro problema de seguridad, un investigador de Trellix redescubrió CVE-2007-4559

.
«Si no se realiza ninguna acción para limpiar los nombres de los archivos antes de solicitar tarfile.extract() o tarfile.extractall(), se genera una vulnerabilidad de path traversal, lo que permite que un actor malintencionado acceda al sistema de archivos»
dijo Charles McFarland, investigador de vulnerabilidades en el Equipo de
investigación de amenazas avanzadas de Trellix

En 2007, menos de una semana después de la divulgación, un mensaje de Python anunció que el problema estaba solucionado: la solución fue actualizar la documentación con una advertencia «que podría ser peligroso extraer archivos de fuentes no confiables».

Estimación de 350.000 proyectos afectados

Al analizar el impacto, los investigadores de Trellix descubrieron que la vulnerabilidad estaba presente en miles de proyectos de software, tanto de código abierto como cerrado.

Los investigadores rastrearon un conjunto de 257 repositorios con mayor probabilidad de incluir el código vulnerable y verificaron manualmente 175 de ellos para ver si estaban afectados. Esto reveló que el 61% de ellos eran vulnerables. La ejecución de una verificación automatizada en el resto de los repositorios aumentó la cantidad de proyectos afectados al 65%, lo que indica un problema generalizado.

Sin embargo, el pequeño conjunto de muestras solo sirvió como referencia para obtener una estimación de todos los repositorios afectados disponibles en GitHub. «Con la ayuda de GitHub, pudimos obtener un conjunto de datos mucho más grande para incluir 588.840 repositorios únicos que incluyen ‘import tarfile’ en su código Python» dijo Charles McFarland

Usando la tasa de vulnerabilidad del 61% verificada manualmente, Trellix estima que hay más de 350.000 repositorios vulnerables, muchos de ellos utilizados por herramientas de aprendizaje automático (por ejemplo, GitHub Copilot) que ayudan a los desarrolladores a completar un proyecto más rápido.

En una publicación del blog, el investigador de vulnerabilidades de Trellix, Kasimir Schulz, quien redescubrió el error, describió los pasos simples para explotar CVE-2007-4559 en la versión de Windows de Spyder IDE, un entorno de desarrollo integrado multiplataforma de código abierto para programación científica.

Los investigadores demostraron que la vulnerabilidad también se puede aprovechar en Linux. Lograron escalar la escritura de archivos y lograr la ejecución del código en el producto Polemarch,

Además de llamar la atención sobre la vulnerabilidad y el riesgo que representa, Trellix también creó parches para poco más de 11.000 proyectos. Las correcciones estarán disponibles en un branch del repositorio afectado y se agregarán al proyecto principal a través un pull.

Debido a la gran cantidad de repositorios afectados, los investigadores esperan que más de 70.000 proyectos reciban una solución en las próximas semanas. Sin embargo, alcanzar la marca del 100% es un desafío difícil, ya que los mantenedores también deben aceptar las solicitudes de fusión.

Fuente: BC


Dejar respuesta

Please enter your comment!
Please enter your name here