Una reciente investigación de Unit 42 de Palo Alto Networks reveló que errores de configuración y fallos de seguridad están provocando la filtración de tokens en artefactos de GitHub Actions. Estos tokens incluyen tanto tokens de servicios en la nube de terceros como tokens de GitHub, lo que los hace accesibles a cualquiera con permisos de lectura en el repositorio.
La filtración de tokens de GitHub, como GITHUB_TOKEN y ACTIONS_RUNTIME_TOKEN, no solo podría proporcionar acceso no autorizado a los repositorios, sino también permitir a actores maliciosos corromper el código fuente y enviarlo a producción a través de flujos de trabajo de CI/CD.
Los artefactos en GitHub permiten a los usuarios compartir datos entre trabajos en un flujo de trabajo y persistir la información durante 90 días una vez que el trabajo ha finalizado. Esto incluye construcciones, archivos de registro, volcados del núcleo, salidas de pruebas y paquetes de despliegue.
El problema radica en que estos artefactos son públicamente accesibles para cualquier persona en proyectos de código abierto, convirtiéndolos en un recurso valioso para extraer secretos como tokens de acceso a GitHub.
Se ha descubierto que los artefactos exponen una variable de entorno no documentada llamada ACTIONS_RUNTIME_TOKEN, que tiene una duración de aproximadamente seis horas y podría ser utilizada para substituir un artefacto por una versión maliciosa antes de que expire.
Esta situación podría abrir una ventana de ataque para la ejecución remota de código cuando los desarrolladores descargan y ejecutan directamente el artefacto corrupto o si existe un trabajo de flujo de trabajo posterior configurado para ejecutarse en función de artefactos previamente subidos.
Si bien GITHUB_TOKEN expira cuando finaliza el trabajo, las mejoras realizadas en la función de artefactos en la versión 4 permitieron aprovechar escenarios de condición de carrera para robar y utilizar el token descargando un artefacto mientras se ejecuta un flujo de trabajo.
Los tokens robados podrían luego ser utilizados para enviar código malicioso al repositorio, creando una nueva rama antes de que finalice el trabajo del pipeline y el token sea invalidado. Sin embargo, este ataque depende de que el flujo de trabajo tenga permiso de «contenidos: escribir».
Es crucial tener en cuenta que los tokens de GitHub no forman parte del código del repositorio, sino que se exponen solo cuando se activa un pipeline de CI/CD y se carga un artefacto que contiene los tokens, permitiendo a un atacante descargar el artefacto, acceder al token y usarlo para inyectar código malicioso en el repositorio.
Se han descubierto vulnerabilidades en varios repositorios de código abierto relacionados con Amazon Web Services (AWS), Google, Microsoft, Red Hat y Ubuntu. GitHub ha catalogado el problema como informativo y solicita a los usuarios que se encarguen de asegurar sus artefactos subidos.
«La desaprobación de Artifacts V3 de GitHub debería llevar a las organizaciones que utilizan el mecanismo de artefactos a reevaluar la forma en que lo utilizan», comentó Yaron Avital de Unit 42. «Elementos pasados por alto como los artefactos de construcción a menudo se convierten en objetivos principales para atacantes«.
Vía The Hacker News