Hilos · 6 noticias en 36 días
Gheist: más de 13.500 ramas plantadas en más de 850 cuentas de GitHub para sacar los secretos por los logs de Actions (26/10)
- Noticias
- 6
- Briefings
- 6
- Empieza
- Última
-
Un paquete npm de Tensorlake salió con el gusano Shai-Hulud, que se deja instalado en.claude/settings.json y.vscode/tasks.json para volver a correr cuando abrís el proyecto (08/10)
La versión maliciosa es la 0.5.144 del SDK de TypeScript tensorlake, ya retirada del registro. La cronología es la que conviene entender: el 7 de octubre a las 01:20 UTC entró el primer commit falso en la rama principal del repositorio, firmado con el nombre de un mantenedor, y aproximadamente un día después el workflow de release publicó solo el paquete a npm. El payload arranca en un hook de preinstall, usa el runtime de Bun para levantarse y se lleva credenciales de npm, GitHub, AWS, HashiCorp Vault y Kubernetes, más claves SSH, archivos.env, billeteras de cripto, datos de apps de mensajería y configuraciones de varias herramientas de código con IA. Resuelve su dominio de mando desde un contrato de Ethereum, con GitHub como respaldo, y apila lo robado en un repositorio público descrito como "Shai-Hulud: Here We Go Again". Dos detalles cambian cómo hay que responder. El primero es la persistencia en los archivos de configuración de Claude Code y VS Code: limpiar node_modules no alcanza. El segundo es una rutina de rehén: un monitor en PowerShell chequea el token de GitHub robado contra la API, y si lo revocás ejecuta un handler provisto por el atacante vía Invoke-Expression, probablemente destructivo, así que conviene aislar la máquina antes de revocar. Revisá también si hay workflows de Actions falsos imitando a Copilot o Dependabot, y si se publicaron versiones inesperadas bajo tus cuentas de npm. The Hacker News
The Hacker News Amazon GitHub Claude Claude Code GitHub Copilot npm Shai-Hulud
-
Más de 500 cuentas de GitHub empujaron un workflow que roba credenciales a decenas de miles de repos (09/10)
El workflow se disfraza de auditoría —security-audit.yml o github_actions_security.yml—, se mete en la rama por defecto con la identidad de la víctima, corre por dispatch manual o por cualquier push, hace checkout del historial completo de git, junta los secretos nombrados, busca 13 patrones de credenciales en el árbol de trabajo y en el historial, aparea IDs de clave de AWS con sus claves secretas y manda todo por curl a una IP fija, 193.32.204.199, sobre HTTP plano. Lo que se llevan incluye claves de AWS, de proveedores de IA como Anthropic, OpenAI y OpenRouter, tokens de GitHub y GitLab, claves SSH y credenciales de nube y de registries. La escala la contaron tres equipos distintos: Socket identificó más de 500 cuentas desde el 7 de octubre, con 279 forks solo en el namespace de henrywoo, cuya cuenta empujó el workflow a 318 repos en 16 minutos; GitGuardian contó 772 repos públicos de 373 usuarios y organizaciones apuntando a 2.577 secretos entre el 31 de agosto y el 30 de septiembre; y StepSecurity rastreó también la cuenta del autor del motor de juegos pyxel, con 27 repos. La actividad se vincula a GhostAction, de septiembre de 2025, y el origen probable es un token de acceso personal filtrado en logs de infostealers. Si encontrás cualquiera de los dos archivos, asumí compromiso: revocá la credencial, rotá todos los secretos expuestos, borrá el workflow de todas las ramas y revisá forks y espejos, sobre todo los privados, que es donde suelen vivir las credenciales commiteadas. The Hacker News
-
GhostAction mutó: tras el bloqueo de GitHub ahora esconde un ladrón de credenciales como fuente.woff2 en 94 repositorios (19/10)
Los operadores, que venían inyectando workflows maliciosos de GitHub Actions en proyectos comprometidos, agregaron una segunda etapa que no depende del runner de CI después de que GitHub empezara a bloquear el workflow el 09/10. El payload nuevo son tres archivos commiteados: un tasks.json de VS Code configurado para ejecutarse al abrir la carpeta (folderOpen), el stealer disfrazado como public/fonts/fa-solid-400.woff2, y un segundo workflow —con nombres como lint.yml o audit.yml— que corre si el stealer no se ejecutó. Apunta a credenciales de AWS, PyPI, npm, Git, Kubernetes, SSH y de proveedores de IA, Anthropic y Google Gemini incluidos, instala un cron que ejecuta código del atacante cada cinco minutos y exfiltra por HTTP plano al puerto 8080. Son 94 repos de 66 dueños, la mayoría proyectos abandonados —65 de los 79 accesibles no tenían commits en más de un año—, y hay una campaña de phishing asociada: el dominio my-github[.]com, registrado el 09/10 y apuntando a la misma IP de exfiltración, se usó contra un maintainer con una página que hacía de reverse proxy, capturaba contraseña y 2FA y completaba en silencio un OAuth device flow con scopes repo, workflow y read:org. Si clonaste alguno de estos repos: revocar accesos y tokens de GitHub desde un dispositivo limpio, cambiar contraseñas, rotar todo lo alcanzable y buscar los IoC. El hallazgo es de OpenSourceMalware; no hay atribución, y el nombre del archivo de fuente coincide con uno de la campaña norcoreana PolinRider de enero de 2026. The Hacker News
The Hacker News Anthropic Google Amazon GitHub Gemini npm PyPI
-
Un master key de LiteLLM commiteado en mayo y nunca revocado terminó en un paquete malicioso en PyPI cinco meses después (24/10)
El 27 de mayo entró a un repo público un archivo de configuración con el master key de un despliegue del LiteLLM Agent Platform; hicieron force-push encima pero no revocaron la clave. El 10 de octubre el atacante la usó para entrar a la plataforma y sacar un token OAuth del CLI de GitHub que, según LiteLLM, no estaba reducido en alcance y pertenecía a un dueño de la organización. Con eso cosechó tokens de dos mantenedores, y el 21 pisó la protección de ramas, apuntó el pipeline de release a un repo sosia llamado "Berri-AI/litellm" y publicó LiteLLM 1.107.0 en PyPI; PyPI lo puso en cuarentena 104 minutos después del aviso del investigador Lidor Machluf, de Upwind. El paquete corría al arrancar Python incluso sin importar LiteLLM, robaba credenciales de herramientas de desarrollo, nube, navegadores, SSH, Git y gestores de paquetes, e instalaba un backdoor Unix que bajaba y corría código cada hora. El detalle de proceso que vale copiar al revés: el release normalmente pide una cuenta especial atada a un dispositivo físico de oficina, pero un cambio temporal había habilitado que dos ingenieros cualquiera dispararan y aprobaran, y el atacante usó un token robado para cada paso. The Hacker News
-
Gheist: más de 13.500 ramas plantadas en más de 850 cuentas de GitHub para sacar los secretos por los logs de Actions (26/10)
Wiz lo viene siguiendo desde el 15 de septiembre y le puso el nombre por el user agent que manda la herramienta del atacante. El patrón es siempre igual: con un token robado con permiso de escritura crean una rama ci-sync- más seis caracteres al azar, commitean.github/workflows/sync-check.yml, el workflow imprime los secretos del repo en base32 —que esquiva el enmascarado de logs de GitHub—, bajan el log por la API y borran la corrida segundos después. Lo incómodo del diseño es que la exfiltración sale por GitHub mismo, así que no hay servidor del atacante que bloquear; una variante corre un job por cada entorno de deployment y expone los secretos de producción. La retención de corridas sospechosas que GitHub aplica desde el 28 de julio paró todas las corridas públicas que Wiz revisó, pero no cubre repos privados ni GitHub Enterprise Server. Para detectar: ramas ci-sync- cuyo único cambio es ese archivo con el mensaje ci: sync config, corridas borradas poco después de terminar en los audit logs, y en runners self-hosted los archivos.gdmp_pat,.gdmp_patg y.gdmp_sweep. Y para responder, rotar todo secreto al que llegaba el repo y tratar como comprometido cualquier runner self-hosted que haya corrido una de esas ramas. The Hacker News
-
wfx-loot: 4.837 cuentas de GitHub comprometidas empujaron un ladrón de secretos de CI a 61.764 repositorios, y la persistencia que dejó en la nube sobrevive a rotar los secretos (10-12/11)
La campaña arrancó el 10/11 y Aikido, que la nombró con las etiquetas del propio atacante, contó que el payload corrió en más de 1.800 repos. El método es lo que hay que entender para buscarlo: primero un pull request de sondeo titulado "docs: dependency audit notes" para probar si hay permiso de escritura —unos 10.431 de esos cayeron en repos que las cuentas comprometidas no poseían, alcanzados por acceso de colaborador u organización, y 92% seguía abierto al momento del reporte—; después un script de shell de unas 1.500 líneas inyectado en un workflow existente, en un hook de npm install o en un workflow nuevo sobre una rama descartable; y en alrededor de un minuto, revertir el cambio y borrar la corrida y sus logs. El script se lleva secrets de Actions, archivos de credenciales de cloud y SSH, historiales de shell y tokens de herramientas de IA —OpenAI, Anthropic, Cursor, Copilot— a dos servidores por HTTP. La parte que no se arregla rotando: con lo robado creó access keys de larga vida en AWS, modificó la trust policy de un rol de AWS para aceptar cualquier cuenta, y agregó credenciales federadas en aplicaciones de Azure. Lo accionable es doble, rotar todo secreto alcanzable por los workflows afectados y además ir a buscar y borrar esos cambios de trust policy y esas credenciales federadas en cada cuenta cloud vinculada. Buscar la rama wfx-docs, el PR de sondeo, o commits titulados "ci: refresh build cache", "chore: add ci helper" y "chore: add dependency audit workflow"; que no aparezca el artefacto no prueba nada. Llegó además a un paquete de Packagist (digitalelvis/neuronai-studio 3.14.3) y dos versiones de un módulo Go. Help Net Security · Aikido · Endor Labs · StepSecurity
Help Net Security Aikido Endor Labs StepSecurity OpenAI Anthropic Amazon GitHub GitHub Copilot npm
El hilo se arma solo en cada build: junta noticias de días distintos que nombran a la misma entidad y repiten vocabulario que casi no aparece en el resto del archivo. Nadie lo edita a mano, así que puede dejar afuera una noticia o sumar una de al lado.