Análisis Principal
Seguridad y Riesgo5 min

GitHub confirma origen de brecha en 3,800 repositorios: extensión adulterada de VS Code fue el vector de entrada

Monitor com editor de código exibindo alerta de segurança em extensão de IDE comprometida

El CISO de GitHub atribuyó este jueves la invasión de 3,800 repositorios internos a una versión maliciosa de la extensión Nx Console para VS Code, ligada al ataque de cadena de suministro contra paquetes npm de TanStack el 11 de mayo.

En la tarde del jueves, 21 de mayo, GitHub hizo pública la causa raíz de una de las mayores exposiciones de código privado documentadas en una plataforma de desarrollo. La extensión Nx Console para Visual Studio Code, en la versión 18.95.0 publicada en el marketplace oficial de Microsoft, fue el vector que permitió al grupo TeamPCP acceder y exfiltrar aproximadamente 3,800 repositorios internos de GitHub. Grafana Labs y OpenAI confirmaron exposiciones derivadas de la misma campaña.


La Nx Console cuenta con 2.2 millones de instalaciones activas. La ventana de compromiso duró menos de veinte minutos, tiempo suficiente para que la carga maliciosa recogiera credenciales de CI/CD, tokens de acceso personal y secretos de ambiente en cualquier instancia que ejecutara la actualización automática de la extensión durante el período.


El origen: TanStack y el worm Mini Shai-Hulud


El ataque comienza diez días antes, el 11 de mayo. El grupo TeamPCP ejecutó un ataque coordinado contra el repositorio de GitHub de TanStack, una biblioteca JavaScript utilizada en front-end corporativo por decenas de miles de proyectos. En seis minutos, 84 artifacts maliciosos fueron distribuidos en 42 paquetes del namespace @tanstack en npm. La técnica explotó una mala configuración de alcance de confianza OIDC en el pipeline de GitHub Actions de TanStack: el workflow autorizaba cualquier branch del repositorio, y no solo branches protegidas.


Con las credenciales de un desarrollador legítimo de TanStack obtenidas en este ataque, TeamPCP accedió al repositorio del proyecto Nx en GitHub y publicó la versión 18.95.0 de la Nx Console directamente en el VS Code Marketplace. La propagación es operada por el worm Mini Shai-Hulud, desarrollado por el grupo para automatizar ataques de cadena de suministro: el worm roba credenciales de pipelines de CI/CD y las utiliza para publicar versiones maliciosas de paquetes dependientes, expandiendo el alcance del ataque en cada ciclo.


La carga entregada por la extensión funcionaba como un credential stealer multi-etapa, exfiltrando datos vía HTTPS y vía GitHub API. En sistemas macOS, la carga instalaba además un backdoor Python que utilizaba la GitHub Search API como canal de comando y control.


Grafana Labs: una rotación de token que no se completó


Grafana Labs confirmó, también el jueves, que su exposición resultó de un token de acceso al ambiente GitHub no incluido en el proceso de rotación de credenciales iniciado tras la detección del ataque a TanStack. Con este token, TeamPCP accedió a los repositorios privados de la empresa y descargó código fuente. Grafana afirmó que los datos de usuarios finales no fueron comprometidos.


OpenAI había confirmado previamente que dos dispositivos corporativos fueron comprometidos durante el ataque a TanStack el 11 de mayo, con exfiltración de credenciales y acceso a un subconjunto limitado de repositorios internos. La empresa dijo no haber encontrado evidencias de acceso a datos de usuarios o a sistemas de producción.


El patrón que une los tres casos es el mismo: rotación de credenciales ejecutada manualmente, sin inventario automatizado de todas las integraciones activas, produce excepciones que atacantes sofisticados identifican y explotan. Organizaciones con decenas de integraciones de terceros conectadas a GitHub tienen, en promedio, más de 400 tokens activos según investigaciones del sector, lo que hace que la rotación manual sea sistemáticamente incompleta.


Lo que los equipos de seguridad deben hacer ahora


Para organizaciones que utilizan VS Code en pipelines de desarrollo, la prioridad inmediata es auditar qué extensiones tienen acceso a variables de ambiente y credenciales de repositorio. La versión 18.95.0 de la Nx Console debe considerarse comprometida; versiones anteriores y posteriores no fueron adulteradas, según el equipo del proyecto Nx.


GitHub orientó que cualquier organización que instaló la extensión durante la ventana de exposición rote inmediatamente todos los tokens de acceso personal, claves de despliegue y credenciales de GitHub Actions. El riesgo es equivalente en GitHub Enterprise Server y en la versión cloud.


TeamPCP reivindicó públicamente la autoría del ataque y anunció que los datos obtenidos están disponibles para compra en foros criminales. Empresas de consultoría que prestan servicios de desarrollo con acceso a repositorios de clientes deben verificar si alguna credencial compartida estaba activa durante el período de compromiso.


El incidente expone una laguna formal en el modelo de distribución de extensiones de IDE: el marketplace de Microsoft hospeda más de 60,000 extensiones sin un mecanismo de verificación de integridad obligatorio. Una ventana de compromiso de menos de veinte minutos en una extensión con millones de usuarios es suficiente para afectar infraestructura crítica a escala global. La adopción de estándares de proveniencia equivalentes al SLSA para extensiones de IDE aún no es exigida por ningún marco de seguridad ampliamente adoptado, dejando esta superficie de ataque sin control formal.

Análisis Principal