Las populares GitHub Actions actions-cool/issues-helper y actions-cool/maintain-one-comment han sido comprometidas mediante un ataque a la cadena de suministro: todas las etiquetas existentes en los repositorios fueron redirigidas a commits maliciosos que extraen credenciales de los pipelines de CI/CD y las envían a un servidor controlado por los atacantes. Cualquier flujo de trabajo de GitHub Actions que haga referencia a estas acciones por versión (tag), en su siguiente ejecución descargará el código malicioso. La única forma de protección es anclar la referencia al hash SHA completo de un commit conocido como seguro.
Mecanismo del ataque: imposter commits
Según el investigador Varun Sharma de StepSecurity, el ataque se ha llevado a cabo mediante la técnica de imposter commits, un método de compromiso de la cadena de suministro en el que se introduce código malicioso haciendo referencia a un commit o tag que solo existe en un fork controlado por el atacante, y no en el repositorio original de confianza. Este enfoque permite eludir las comprobaciones estándar basadas en Pull Request y conseguir la ejecución de código arbitrario.
Como informa StepSecurity, cada tag existente en el repositorio actions-cool/issues-helper fue movido para apuntar a un commit impostor, que no aparece en el historial normal de commits de la acción. Esto significa que el código malicioso se vuelve invisible durante una revisión estándar del historial del repositorio.
Cadena de ejecución del código malicioso
Al ejecutarse en el entorno de GitHub Actions Runner, el commit malicioso lleva a cabo la siguiente secuencia de acciones:
- Descarga el entorno de ejecución de JavaScript Bun en el runner
- Lee la memoria del proceso Runner.Worker para extraer credenciales
- Realiza una petición HTTPS saliente a un dominio controlado por el atacante para transferir los datos robados
La lectura de la memoria del proceso Runner.Worker es un vector especialmente peligroso, ya que este proceso contiene secretos, tokens de acceso y otras credenciales utilizadas en el pipeline de CI/CD. La exposición de estos datos puede abrir a los atacantes el acceso a repositorios, entornos en la nube y otros recursos vinculados a los flujos de trabajo.
Alcance de la intrusión
Según los investigadores, además de actions-cool/issues-helper, también se han visto comprometidos 15 tags de una segunda GitHub Action — actions-cool/maintain-one-comment — con una funcionalidad similar. GitHub ha bloqueado el acceso al repositorio actions-cool/maintain-one-comment, señalando una violación de las condiciones de uso de la plataforma. No se han revelado las razones concretas de esta decisión.
Dado que ahora todos los tags apuntan a commits maliciosos, se encuentra bajo amenaza cualquier flujo de trabajo que haga referencia a estas acciones por versión, por ejemplo, mediante construcciones como actions-cool/issues-helper@v3 o actions-cool/issues-helper@latest. En su próxima ejecución, dicho flujo de trabajo descargará y ejecutará automáticamente el código malicioso.
Indicadores de compromiso
Dominio de exfiltración de datos identificado durante el análisis:
- t.m-kosche[.]com — dominio al que se envían las credenciales robadas
Se recomienda a las organizaciones revisar los registros de red en busca de conexiones hacia este dominio desde el entorno de CI/CD.
Evaluación del impacto
Este ataque representa un alto nivel de peligrosidad para las organizaciones que utilizan las GitHub Actions afectadas en sus pipelines de CI/CD. La exposición de las credenciales del runner puede provocar consecuencias en cascada: acceso no autorizado a repositorios privados, infraestructura en la nube, registros de contenedores y otros recursos cuyos secretos se gestionan a través de GitHub Actions.
Son especialmente vulnerables los proyectos de código abierto y las organizaciones que no aplican la práctica de anclar las dependencias a hashes SHA concretos de commits. La amplia adopción de GitHub Actions como plataforma de automatización hace que este tipo de ataques a la cadena de suministro tengan un potencial impacto masivo.
Recomendaciones de respuesta
- Interrumpir de inmediato el uso de actions-cool/issues-helper y actions-cool/maintain-one-comment en todos los flujos de trabajo
- Auditar los registros de los runners de CI/CD en busca de conexiones salientes hacia el dominio t.m-kosche[.]com
- Rotar todos los secretos que hayan estado disponibles en los flujos de trabajo que utilizaron las acciones comprometidas: tokens de GitHub, claves de API, credenciales de proveedores cloud
- Migrar al anclaje mediante hashes SHA completos de commits para todas las GitHub Actions de terceros en lugar de usar referencias por tags o ramas; este es el único modo fiable de protegerse frente a ataques similares
- Implantar monitorización de la actividad de red de los runners para detectar conexiones salientes anómalas desde el entorno de CI/CD
Este incidente ilustra claramente un problema fundamental del modelo de confianza de GitHub Actions: los tags mutables no garantizan la integridad del código. Toda organización que utilice GitHub Actions de terceros debe auditar sus flujos de trabajo y cambiar todas las referencias a acciones externas basadas en tags por hashes SHA completos de commits. Para quienes ya se hayan visto afectados, la prioridad es la rotación inmediata de todos los secretos que hayan podido estar accesibles a los runners comprometidos.