Ataque a la cadena de suministro de PyTorch revela vulnerabilidades en GitHub Actions
Ataque a la cadena de suministro de PyTorch revela vulnerabilidades en GitHub Actions

Ataque a la cadena de suministro de PyTorch revela vulnerabilidades en GitHub Actions

Un ingeniero de seguridad, John Stawinski IV, junto con Adnan Khan, identificó una vulnerabilidad crítica en el sistema de integración continua/entrega continua (CI/CD) de PyTorch, un marco de aprendizaje automático ampliamente utilizado. La investigación se llevó a cabo como parte de un proyecto que busca mejorar la seguridad de las infraestructuras de código abierto.

Vulnerabilidades en los ejecutores autohospedados

PyTorch, desarrollado por Meta, utiliza ejecutores autohospedados en su repositorio GitHub. Estos ejecutores son máquinas virtuales que permiten la automatización de procesos como compilación y pruebas. Sin embargo, según el ingeniero, esta configuración no sigue las mejores prácticas de seguridad.

Los ejecutores autohospedados ofrecen mayor flexibilidad al permitir personalizaciones por parte de los usuarios. A diferencia de los ejecutores gestionados directamente por GitHub, estos pueden reutilizarse para múltiples tareas sin necesidad de reiniciar una instancia limpia.

Exploits posibles en el sistema

La principal vulnerabilidad identificada se encuentra en la configuración predeterminada de los ejecutores autohospedados. Cualquier colaborador del repositorio puede enviar una solicitud de extracción (PR) que permita ejecutar código en estos corredores, lo cual representa un riesgo significativo.

Según el informe, la configuración predeterminada permite que cualquier usuario acceda a los ejecutores autohospedados si envía una solicitud de extracción. Esto facilita la posibilidad de explotar la infraestructura para robar secretos o alterar versiones del software.

Acceso a secretos y sistemas en la nube

Durante el análisis, se encontraron varios ejecutores autohospedados potencialmente vulnerables. Algunos de ellos tenían acceso a claves de Amazon Web Services (AWS) y tokens de acceso personal de GitHub. La pareja logró acceder a estos secretos al enviar una solicitud de extracción para corregir un error tipográfico en la documentación.

Con el token obtenido, se pudo cargar un activo que afirma ser un binario precompilado de PyTorch. Cualquier usuario que descargue este archivo ejecutaría código modificado. Si los activos del código fuente no estuvieran fijados en la confirmación de lanzamiento, el atacante podría sobrescribirlos directamente.

Impacto y recompensa

El acceso a los secretos permitió al equipo acceder a más de 90 repositorios relacionados con PyTorch, así como a los sistemas en la nube de AWS del proyecto. El ataque reveló el potencial impacto que podría tener una vulnerabilidad crítica en la cadena de suministro.

Como resultado, Stawinski y Khan recibieron una recompensa por errores de U$S 5.000 de parte de Facebook, más un bono del diez por ciento como disculpa por los retrasos.