La campaña de cadena de suministro GhostAction ha resurgido con una virulencia sin precedentes. El 8 de octubre, dos cuentas de mantenedores de alto perfil fueron comprometidas y utilizadas para inyectar flujos de trabajo maliciosos en 345 repositorios en apenas dos ráfagas automatizadas de 24 y 16 minutos, respectivamente.
Para el 9 de octubre, más de 500 cuentas de GitHub habían propagado el mismo workflow a decenas de miles de repositorios, según estimaciones de Socket. Una campaña que, lejos de ser un incidente aislado, lleva operando desde septiembre de 2025.
El modus operandi: identidades robadas, confianza traicionada
El vector de ataque es tan simple como devastador. Los atacantes obtienen credenciales de mantenedores (probablemente tokens de acceso personal (PAT) filtrados en registros de infostealers o volcados de credenciales) y las utilizan para inyectar un workflow malicioso directamente en la rama principal, sin pull request ni revisión de código. El archivo se camufla bajo nombres que suenan a mejora de seguridad: security-audit.yml o github_actions_security.yml, con mensajes de commit tan inocuos como “Add security audit workflow”.
La primera ráfaga se ejecutó desde la cuenta de Takashi Kitao, autor del motor de juego pyxel (18.400 estrellas). Desde las 13:20 UTC, el atacante empujó el workflow a 27 repositorios.
Ocho horas después, la cuenta de Henry Wu (henrywoo), autor original de athenadriver de Uber, fue utilizada para desplegar el mismo script en 318 repositorios —39 de origen y 279 forks— en una ventana de solo 16 minutos, entre las 21:10 y las 21:26 UTC. Entre los repositorios afectados se encuentra uber/athenadriver, al que Wu conservaba acceso de escritura como autor original.
El payload: la evolución que cambia las reglas del juego
El workflow inyectado no solo roba los secretos configurados en GitHub Actions. La variante de octubre incorpora una capacidad nueva y mucho más peligrosa: extrae el historial completo de Git mediante git log -p --all, revisando cada commit en cada rama y etiqueta en busca de trece patrones de credenciales. Esto incluye claves de AWS (con captura de contexto para emparejar el ID de acceso con su clave secreta), tokens de GitHub y GitLab, claves de Google/Firebase, tokens de Slack y SendGrid, y —por primera vez como objetivo de primer nivel— claves de API de proveedores de IA: Anthropic (sk-ant-), OpenAI (sk-proj-) y OpenRouter (sk-or-).
La implicación es brutal: rotar los secretos actuales ya no es suficiente. Un secreto comprometido y eliminado en 2019 sigue siendo accesible en el historial de Git, y esta campaña lo sabe. El payload se ejecuta con fetch-depth: 0, descargando todo el repositorio, y exfiltra los datos mediante curl sobre HTTP plano —sin cifrado, sin DNS— a la dirección IP fija 193.32.204.199. El servidor de los atacantes confirmó la recepción de los datos cuatro segundos después de iniciarse la ejecución en el caso de uber/athenadriver.
Víctimas y alcance: de pyxel a Uber, pasando por miles de forks
La lista de repositorios afectados es extensa y variada. Además de kitao/pyxel y uber/athenadriver, la campaña alcanzó proyectos como henrywoo/pyllama (2.800 estrellas), henrywoo/chatllama (1.200 estrellas), RSOLV-dev/rsolv-action (el repositorio fuente de una GitHub Action publicada) y una larga cola de proyectos personales y forks. La magnitud real es mayor de lo que las búsquedas de código de GitHub pueden capturar, ya que estas solo indexan ramas predeterminadas y excluyen los forks.
En pyxel, el workflow malicioso se ejecutó cinco veces: tres por los pushes del propio atacante y dos mediante workflow_dispatch manual, lo que indica una operación con intervención humana directa para verificar o repetir la recolección. En typecho-fans/plugins, un repositorio infectado desde septiembre, el atacante intentó re-disparar el workflow con commits vacíos, pero los runs quedaron bloqueados por una puerta de aprobación manual —un recordatorio de que una sola configuración de seguridad puede romper la cadena de ataque.
El contexto: una campaña que nunca se detuvo
GhostAction no es nueva. GitGuardian la documentó por primera vez en septiembre de 2025, cuando comprometió 817 repositorios de 327 usuarios y exfiltro 3.325 secretos, incluyendo tokens de PyPI, npm y DockerHub.
La técnica fue posteriormente reutilizada en las campañas Shai-Hulud. En agosto y septiembre de 2026, una nueva oleada golpeó 772 repositorios públicos de 373 usuarios y organizaciones, con 2.577 secretos comprometidos. La campaña de octubre es la continuación lógica: mismos nombres de archivo, mismo disfraz, misma técnica de inyección, pero con capacidad de recolección mucho más amplia y un nuevo endpoint de exfiltración.
Recomendaciones: qué hacer si tu repositorio está afectado
Los investigadores de StepSecurity y Socket han publicado una serie de consultas de búsqueda para identificar repositorios infectados. Si en tu organización aparece alguno de los marcadores —AKIA_CTX_START, c=monami o la IP 193.32.204.199— en un workflow, trátalo como una brecha confirmada.
Las acciones inmediatas incluyen: eliminar el workflow de todas las ramas y forks, rotar cada secreto que haya aparecido alguna vez en el historial del repositorio —no solo los actuales—, y revisar la actividad reciente de las cuentas de mantenedores en busca de commits de workflows no autorizados. Además, se recomienda habilitar la aprobación manual para ejecuciones de workflows en repositorios públicos, una medida que ya ha demostrado ser efectiva para detener la exfiltración.
La ausencia de paquetes maliciosos publicados hasta la fecha —pyxel no ha visto una nueva versión desde agosto, y athenadriver desde marzo de 2024— no es evidencia de que las credenciales robadas estén a salvo. La ventana de exposición permanece abierta hasta que los tokens sean rotados. Y en una campaña que lleva más de un año operando, la paciencia del atacante es, quizás, su arma más letal.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.

