GitHub confirmó una intrusión iniciada en el equipo de un empleado tras instalar una extensión maliciosa de Visual Studio Code, que derivó en la exfiltración de unos 3.800 repositorios internos. La compañía retiró la versión maliciosa, aisló el dispositivo y rotó credenciales críticas, mientras continúa la investigación.

El incidente vuelve a poner el foco en un punto débil recurrente en la seguridad del desarrollo: el endpoint del desarrollador. Aunque muchas organizaciones concentran controles en el perímetro, en CI/CD o en el propio repositorio, una simple instalación en el editor puede abrir la puerta a robo de credenciales, acceso a código y movimiento lateral. En este caso, el vector inicial fue una extensión de Visual Studio Code manipulada con fines maliciosos instalada en el equipo de un empleado.
Tras el compromiso del dispositivo, se produjo la exfiltración de aproximadamente 3.800 repositorios internos de GitHub. GitHub aseguró que no hay evidencias de impacto en datos de clientes fuera del conjunto de repositorios afectados, un matiz importante porque este tipo de fuga suele mezclar código, documentación, scripts de despliegue y, en el peor de los casos, secretos incrustados por error. Como parte de la respuesta, la empresa retiró del VS Code Marketplace la versión maliciosa de la extensión, aisló el endpoint comprometido y rotó credenciales críticas el mismo día, priorizando los secretos más sensibles.
La atribución pública está en evolución. El actor TeamPCP reivindicó el acceso y llegó a ofrecer los datos presuntamente robados por un mínimo de 50.000 dólares, acompañando la presión con amenazas de filtración gratuita si no aparecía comprador. A falta de verificación independiente completa, el episodio encaja con una serie de campañas atribuidas a TeamPCP desde marzo de 2026, orientadas a ecosistemas de desarrollo y a compromisos de cadena de suministro, donde la rapidez es parte de la ventaja del atacante. En incidentes recientes, la ventana de exposición puede ser de minutos: un ejemplo citado en el sector es la retirada de una versión con backdoor de una extensión popular, Nx Console, en cuestión de decenas de minutos, lo que ilustra que confiar solo en reacciones del marketplace no basta para entornos corporativos.
Los análisis técnicos publicados en torno a esta oleada describen técnicas de persistencia especialmente preocupantes para equipos que clonan repositorios con frecuencia. Se ha observado un patrón denominado Mini Shai Hulud, descrito como un gusano de cadena de suministro capaz de persistir mediante modificaciones en ficheros de configuración del propio entorno de desarrollo. Entre las señales a vigilar destacan inyecciones en .vscode/tasks.json con disparadores como folderOpen, y cambios en el directorio .claude, por ejemplo .claude/settings.json o ficheros inesperados como .claude/setup.mjs, con disparadores tipo SessionStart. El riesgo práctico es la reinfección: basta con volver a clonar un repositorio contaminado y abrirlo para reactivar tareas o flujos que descarguen y ejecuten carga maliciosa.
En la misma cadena técnica se han descrito abusos de scripts de instalación en npm, como preinstall o postinstall, junto con la descarga y ejecución del runtime Bun como bootstrap del payload. Para investigación y hunting, se ha propuesto buscar en historiales de commits el indicador IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner, que se ha usado como marca de infección en casos relacionados. También conviene añadir detecciones en EDR y SIEM para ejecuciones de bun iniciadas tras npm install o por procesos de VS Code, además de patrones de conexiones a objects.githubusercontent.com asociadas a instalaciones, cuando se utilicen como mecanismo de descarga.
El impacto potencial no se limita a la fuga de código. En campañas atribuidas a TeamPCP se han documentado técnicas contra GitHub Actions, incluyendo el envenenamiento de versiones mediante force push que repunta múltiples tags hacia commits maliciosos. Este enfoque puede permitir el robo de secretos en runners y, en escenarios avanzados, intentos de lectura de memoria del proceso Runner.Worker. Además, se han observado canales de exfiltración y mando y control mediante dominios typosquat y, de forma oportunista, el uso de GitHub como canal alternativo, por ejemplo creando repositorios públicos para volcado cifrado o utilizando patrones de búsqueda de commits como dead drop.
En términos defensivos, la lección principal es tratar las extensiones del IDE como software con capacidad equivalente a un agente privilegiado. Es recomendable restringir la instalación de extensiones en VS Code mediante políticas corporativas, allowlists y bloqueo de orígenes no autorizados, y mantener un inventario auditado de extensiones instaladas en los equipos de desarrollo. También se recomienda no basarse en ficheros de recomendación del repositorio como mecanismo de control y aplicar controles a nivel de máquina mediante MDM o políticas gestionadas.
En paralelo, debe asumirse que cualquier repositorio interno puede contener credenciales expuestas por error o accesos útiles para pivotar. Por eso, conviene rotar tokens y secretos que pudieran existir en repositorios, automatizaciones y sistemas de build, incluyendo PATs, credenciales de CI, secretos de GitHub Actions y tokens de GitHub Apps. Tras la rotación, es clave revisar registros y telemetría para detectar abuso posterior, accesos anómalos, clonados masivos y operaciones fuera de patrón. Para minimizar el radio de explosión, aplicar mínimo privilegio a cuentas de desarrollador y permisos a repositorios reduce lo que un atacante puede extraer desde un único endpoint comprometido.
Como medida preventiva adicional, es útil imponer un periodo de enfriamiento para nuevas versiones de extensiones y dependencias, por ejemplo 24 a 72 horas, antes de permitir su instalación o actualización en equipos y en CI, y endurecer la cadena de dependencias en npm con lockfiles, npm ci y, cuando sea viable, desactivar scripts de ciclo de vida con ignore-scripts en CI. En entornos maduros, limitar el acceso directo de equipos y runners a registros públicos y enrutar descargas a través de un proxy o registro privado con control de egress reduce la superficie. Finalmente, conviene monitorizar señales de exfiltración encubierta, como creación inesperada de repositorios públicos o commits con patrones anómalos, porque la salida de datos no siempre ocurre por canales tradicionales.
GitHub ha indicado que publicará un informe más completo cuando termine la investigación. Mientras tanto, el caso sirve como recordatorio de que la cadena de suministro no empieza en el repositorio, empieza en el editor, en el gestor de paquetes y en cada actualización que un desarrollador instala para trabajar más rápido.
Más información
- BleepingComputer – GitHub confirms breach of 3,800 repos via malicious VSCode extension : https://www.bleepingcomputer.com/news/security/github-confirms-breach-of-3-800-repos-via-malicious-vscode-extension/amp/
- The Record (Recorded Future News) – GitHub confirms being hacked by TeamPCP, says customer data unaffected : https://therecord.media/github-confirms-teampcp-hack-customers-unaffected
- Aikido Security (blog) – GitHub breached via a malicious VS Code extension: why developer devices are the real target : https://www.aikido.dev/blog/github-breached-vs-code-extension
- Hive Security (blog) – One Extension, 3,800 Repos: Inside TeamPCP’s GitHub Breach : https://hivesecurity.gitlab.io/blog/github-breach-vscode-extension-teampcp-2026/
- Phoenix Security (blog) – TeamPCP’s Five-Day Siege: How One Stolen Token Cascaded Across GitHub Actions, Checkmarx, VS Code Extensions, and npm : https://phoenix.security/teampcp-supply-chain-attack-trivy-checkmarx-github-actions-npm-canisterworm/
- Unit 42, Palo Alto Networks (research) – The npm Threat Landscape: Attack Surface and Mitigations (Updated May 1) : https://unit42.paloaltonetworks.com/monitoring-npm-supply-chain-attacks/?_wpnonce=e85efdbd7a&lg=en&pdf=print
La entrada GitHub confirma la exfiltración de 3.800 repositorios internos tras una extensión maliciosa de VS Code se publicó primero en Una Al Día.
☞ El artículo completo original de Hispasec lo puedes ver aquí

No hay comentarios.:
Publicar un comentario