Tres vulnerabilidades en Python Package Index (PyPI) podrían llevar al compromiso de todo el ecosistema expuesto

Especialistas en ciberseguridad reportan el hallazgo de una vulnerabilidad en el flujo de trabajo de GitHub Actions para el repositorio de origen de Python Package Index (PyPI), la cual podría ser explotada para realizar una solicitud de extracción maliciosa y ejecutar código arbitrario en pypi.org. El investigador de seguridad conocido como RyotaK publicó información sobre tres vulnerabilidades en PyPI, una de las cuales podría potencialmente llevar al compromiso de todo el ecosistema PyPI.

Como algunos usuarios recordarán, PyPI es el repositorio de software oficial de terceros para el lenguaje de programación Python, y algunos administradores de paquetes lo utilizan como fuente predeterminada para paquetes y dependencias.

Esta falla está relacionada con el flujo de trabajo combine-prs.yml en pypa/warehouse, diseñada para recopilar y fusionar solicitudes de extracción con nombres de sucursales que comienzan con dependdabot. El flujo de trabajo no verifica quién es el autor de una solicitud de extracción, por lo que cualquiera podría crear una solicitud de extracción con un nombre específico. Sin embargo, la ejecución del código no sería posible, dado que el flujo de trabajo combina solicitudes de extracción y el resultado es revisado por un humano, descartando las posibilidades de un ataque exitoso.

El experto descubrió que el código responsable de imprimir las listas de sucursales de las solicitudes de extracción contenía una vulnerabilidad que podría explotarse para ejecutar comandos y filtrar el token de acceso de GitHub con permiso de escritura contra el repositorio de pypa/warehouse.

Dado que cualquier código que se envía a la rama principal de pypa/warehouse se implementa automáticamente en pypi.org, un actor de amenazas con permisos de escritura en el repositorio puede ejecutar código arbitrario en pypi.org.

Un ataque exitoso requeriría que los actores de amenazas realicen una bifurcación el repositorio de pypa/warehouse, creando una rama con un nombre que comience con dependdabot, agregando una modificación y creando una solicitud de extracción legítima para capturar el token de acceso de GitHub.

El investigador agrega que un ataque sería difícil de identificar, ya que los actores de amenazas pueden usar una solicitud de extracción que no sea maliciosa, evadiendo así incluso el análisis humano. El flujo de trabajo vulnerable se agregó al repositorio en octubre de 2020. El equipo de seguridad de PyPI reparó el error la semana pasada, el mismo día en que RyotaK envió su reporte.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).