Una nueva campaña contra GitHub usa cuentas reales de desarrolladores para colar un programa que roba llaves y contraseñas de los procesos automáticos de los proyectos. Los investigadores la llamaron wfx-loot.
Si tienes proyectos en GitHub con GitHub Actions, es decir, el sistema que corre pruebas y despliegues cada vez que subes cambios, revisa esta nota: el ataque borra sus huellas en menos de un minuto.
¿Qué pasó?
La empresa de seguridad Aikido detectó la campaña y le puso nombre. Según sus datos, citados por BleepingComputer y Help Net Security el 12 de noviembre de 2026, el ataque empezó alrededor de las 12:45 UTC del 10 de noviembre.
El atacante usó 4,837 cuentas de GitHub comprometidas para abrir pull requests de prueba, es decir, propuestas de cambio, en 61,764 repositorios. Esas propuestas llevaban el título «docs: dependency audit notes» y servían para averiguar dónde tenía permiso de escritura.
Donde lo tenía, metía un script de unas 1,500 líneas por tres caminos: modificando un flujo de GitHub Actions existente, agregando uno nuevo en una rama temporal o escondiéndolo en un paso que se ejecuta al instalar dependencias con npm. Después revertía el cambio y borraba los registros de ejecución.
Los investigadores confirmaron que el programa se ejecutó y robó datos en más de 1,800 repositorios. Entre lo que busca están los secretos de GitHub Actions, credenciales de AWS, Azure y Google Cloud, tokens para publicar paquetes en npm y PyPI, y llaves de servicios de IA como OpenAI, Anthropic, Cursor y GitHub Copilot.
¿Por qué te importa?
El ataque no aprovecha una falla de GitHub, sino cuentas legítimas cuyo acceso fue robado. Por eso las protecciones normales no siempre lo frenan. Además, con las llaves de la nube el programa intenta crear credenciales de larga duración en AWS, que no desaparecen solas aunque cambies la llave original y hay que buscarlas y borrarlas.
Unas 50 de las cuentas comprometidas pueden publicar paquetes en registros como npm, PyPI, Go, crates o Packagist. El código malicioso ya llegó al paquete de Packagist digitalelvis/neuronai-studio 3.14.3 y a las versiones v1.0.278 y v1.0.280 del módulo de Go onuragtas/docker-env.
Aikido también encontró coincidencias con GhostAction, otra campaña que robó secretos en GitHub en octubre. Hasta la publicación de las fuentes, GitHub no había dado una declaración.
¿Qué puedes hacer?
- Busca en tus repositorios una rama llamada wfx-docs, un pull request titulado «docs: dependency audit notes» o huecos raros en la numeración de las ejecuciones de GitHub Actions.
- Si confirmas que el script se ejecutó, cambia todos los secretos y variables que ese flujo podía leer, y revisa los roles y usuarios de tu cuenta en la nube.
- Si instalaste el paquete neuronai-studio 3.14.3 de Packagist, trata esa computadora o servidor como comprometido.
- Activa la verificación en dos pasos en tu cuenta de GitHub y revisa qué tokens y aplicaciones tienen acceso a ella.
- Limita los permisos de tus flujos de GitHub Actions a lo mínimo y pide revisión antes de aceptar cambios en la carpeta de flujos.
Sigue leyendo
Fuentes
- BleepingComputer: Hackers compromise 4,800 GitHub accounts to steal cloud credentials
- Help Net Security: Check your GitHub repos: A secret stealer hit tens of thousands of them