Introducción
En menos de 48 horas, la tercera oleada de la campaña GhostAction comprometió más de 500 cuentas GitHub de mantenedores para inyectar un workflow malicioso en decenas de miles de repositorios. El 8 de octubre de 2026 quedará marcado como el momento en que esta campaña persistente cruzó un umbral crítico: ya no se limita a los secretos habituales de CI/CD, sino que apunta a la totalidad del historial git de los proyectos comprometidos.
La mecánica del ataque
El archivo depositado se llama .github/workflows/security-audit.yml — un nombre intencionalmente tranquilizador, diseñado para imitar prácticas legítimas de seguridad. Los commits asociados incluyen mensajes como "Add security audit workflow" o "Update security audit workflow", calibrados para mimetizarse con las contribuciones cotidianas del equipo.
Una vez instalado el workflow, se ejecuta en cada push de código, sin filtro de rama. Su primera acción es mapear los secretos existentes de GitHub Actions del repositorio — un reconocimiento automatizado que delata una operación con herramientas industrializadas, no una intervención manual. A continuación recupera la totalidad del historial git mediante el parámetro fetch-depth: 0, una opción que descarga cada commit en cada rama, incluidas las ramas obsoletas y las referencias huérfanas. Todos los datos recopilados se exfiltran en texto plano hacia una dirección IP codificada en duro mediante una simple petición HTTP POST.
Cuando el historial git se convierte en superficie de ataque
Las oleadas anteriores de GhostAction se limitaban a los secretos declarados en GitHub Actions. La oleada de octubre de 2026 mantiene esa capacidad y añade una novedad crítica: un escaneo por expresiones regulares de todo el contenido versionado, árbol de trabajo e historial completo.
Los patrones buscados cubren trece categorías de credenciales: claves de acceso AWS largas y temporales (STS), claves secretas AWS, tokens de sesión, claves de API de Anthropic, OpenAI y OpenRouter, tokens de GitHub y GitLab, claves de Google/Firebase/GCP, tokens de Slack y claves de SendGrid. El detalle técnico más relevante está en el tratamiento de las claves AWS: cuando se detecta un identificador de clave, el workflow captura las dos líneas anteriores y las dos siguientes para reconstruir el par identificador/secreto, tanto si aparece en un archivo .env, un bloque de Terraform o un archivo de credenciales AWS. La razón es simple: los equipos suelen dar por eliminadas esas credenciales, cuando en realidad persisten intactas en el historial git.
Socket Research confirma la exfiltración exitosa de 3 325 secretos. Entre los repositorios afectados durante el burst del 8 de octubre figuran kitao/pyxel (18 420 estrellas) y uber/athenadriver, ambos comprometidos a través de cuentas de mantenedores cuyos accesos habían sido interceptados.
Medidas inmediatas para sus equipos
La primera prioridad es la rotación de todas las credenciales potencialmente expuestas — no únicamente las del último commit, sino cualquier clave que haya transitado por el historial git desde la creación del repositorio. El comando git log -p --all permite localizar cada ocurrencia, incluso en ramas ya eliminadas.
Para las claves AWS expuestas, la auditoría de CloudTrail sobre la ventana temporal de la exposición es indispensable antes de cualquier revocación: una clave comprometida deja rastros de uso que deben identificarse para evaluar el alcance real de la brecha.
En materia preventiva, tres medidas son prioritarias: activar el secret scanning con push protection en todos los repositorios de GitHub, restringir los permisos de escritura directa sobre las ramas por defecto, y monitorizar la aparición de archivos .github/workflows/security-audit.yml en las alertas de repositorios. El indicador de red a bloquear de inmediato: 193.32.204[.]199.
GhostAction ilustra una tendencia estructural que los equipos de seguridad deben interiorizar: los pipelines de CI/CD se han convertido en la vía de entrada preferida para las campañas de robo de credenciales a gran escala. La superficie de ataque ya no se limita a lo que sus workflows exponen hoy — abarca todo lo que su base de código ha contenido alguna vez.

