Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
tanscript-exploit-check — Comprobador de IOC para el ataque a la cadena de suministro de npm TanStack/Mini Shai-Hulud (CVE-2026-45321) | Kitploit
Herramientas/GitHubGitHub/nkopylov/tanscript-exploit-check
Gestión de Indicadores de Compromiso (IOC)Análisis de VulnerabilidadesAnálisis ForenseInteligencia de AmenazasSeguridad de Cadena de SuministroRespuesta a Incidentes
GitHubnkopylov/tanscript-exploit-check

tanscript-exploit-check

Comprobador de IOC para el ataque a la cadena de suministro de npm TanStack/Mini Shai-Hulud (CVE-2026-45321)

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
117hace 4 mesesAún no revisado
Compartir

Mini Shai-Hulud Ataque a la Cadena de Suministro — Comprobador de IOCs

curl -fsSL https://raw.githubusercontent.com/nkopylov/tanscript-exploit-check/main/check-tanstack-exploit.sh | bash

O clonar y ejecutar localmente:

git clone https://github.com/nkopylov/tanscript-exploit-check.git
cd tanscript-exploit-check
./check-tanstack-exploit.sh [directorio_del_proyecto ...]

Lo que sucedió

Este comprobador cubre dos oleadas de la campaña de ataque a la cadena de suministro Mini Shai-Hulud por parte de TeamPCP:

Oleada 1: Compromiso del CI/CD de TanStack (11 de mayo de 2026)

El 11 de mayo de 2026 (19:20-19:26 UTC), un atacante publicó 84 versiones maliciosas en 42 paquetes @tanstack/* de npm en una ventana de 6 minutos. El ataque también afectó a paquetes de Mistral AI, UiPath, OpenSearch y otros, con más de 170 paquetes en total en npm y PyPI.

No se robaron credenciales de mantenedores. El atacante explotó la propia cadena de confianza del CI/CD mediante un ataque de 3 etapas:

  1. Explotación de pull_request_target — Un fork de GitHub desechable abrió un PR que ejecutaba código del atacante en el contexto de seguridad del repositorio base.
  2. Envenenamiento de caché de GitHub Actions — El código del fork envenenó la caché compartida de pnpm, que posteriormente infectó los flujos de trabajo de publicación legítimos.
  3. Extracción de tokens OIDC de la memoria del proceso — El código malicioso extrajo tokens de publicación de npm directamente de la memoria del runner de GitHub Actions, produciendo paquetes con atestados de procedencia SLSA Build Level 3 válidos.

Oleada 2: Toma de cuenta de npm "atool" (19 de mayo de 2026)

El 19 de mayo de 2026 (01:39-02:06 UTC), la cuenta comprometida de npm atool ([email protected]) publicó 637 versiones maliciosas en 314 paquetes en dos oleadas automatizadas. Los objetivos de alto impacto incluyen:

  • size-sensor (4.2M descargas/mes)
  • echarts-for-react (3.8M descargas/mes)
  • @antv/scale (2.2M descargas/mes)
  • timeago.js (1.15M descargas/mes)
  • 310+ paquetes adicionales @antv/* y otros

Esta oleada utilizó una carga útil basada en Bun (498KB index.js) activada mediante "preinstall": "bun run index.js", con una carga útil de segunda etapa oculta en commits impostores enviados al repositorio de GitHub antvis/G2 mediante la explotación del objeto compartido del fork.

Lo que hace el código malicioso (ambas oleadas)

Ambas oleadas utilizan la misma familia de herramientas "Mini Shai-Hulud":

  • Recolección de credenciales: Más de 80 variables de entorno, cadena completa de AWS (env → config → IMDSv2 → ECS → Secrets Manager), PATs de GitHub, tokens de npm, claves SSH, tokens K8s, tokens de Vault, gestores de contraseñas (1Password, Bitwarden, pass, gopass).
  • Persistencia: Demonios gh-token-monitor (Oleada 1) y kitty-monitor (Oleada 2) mediante LaunchAgent/systemd; hooks en .claude/settings.json y .vscode/tasks.json.
  • Exfiltración: Redes P2P (Oleada 1), API de Git Data de GitHub + HTTPS disfrazado como trazas de OpenTelemetry (Oleada 2).
  • Abuso de CI/CD: Inyección de flujos de trabajo volcando toJSON(secrets), intercambio de tokens OIDC de npm.
  • Interruptor de hombre muerto: rm -rf ~/ si el token de GitHub se revoca mientras el daemon está activo.
  • C2 de buzón muerto (Oleada 2): Consulta la API de búsqueda de commits de GitHub en busca de la palabra clave firedalazer, comandos firmados con RSA-PSS.

Lo que comprueba este script

#ComprobaciónDescripción
1Interruptor de hombre muertoDemonios de persistencia: gh-token-monitor (Oleada 1), kitty-monitor (Oleada 2)
2Procesos maliciososNombres de procesos conocidos del atacante (ambas oleadas)
3Archivos de carga útilArchivos maliciosos conocidos por nombre y hash SHA-256 (4 hashes)
4Hooks de Claude CodeHooks inyectados en .claude/settings.json + heurística genérica de SessionStart
5Tareas de VS CodeTareas inyectadas en .vscode/tasks.json + heurística genérica de runOn: folderOpen
6GitHub ActionstoJSON(secrets) en cualquier flujo de trabajo + advertencia de pull_request_target
7Archivos lock de npmVersiones de paquetes comprometidos en archivos lock
8optionalDependencies@tanstack/setup y @antv/setup maliciosos + 4 SHAs de commits impostores
9Conexiones de redConexiones activas a infraestructura C2 (5 dominios/IPs)
10Caché DNSResolución previa de dominios del atacante (4 dominios)
11Ramas de GitPatrón de nombres de ramas del atacante con temática de Dune
12Scripts de ciclo de vidaHeurística: bun run en preinstall/postinstall (paquetes instalados)
13C2 de buzón muertoPalabra clave firedalazer y marcadores "Shai-Hulud" en el historial de git
14Dependencias de GitHubHeurística: dependencias github: fijadas a un SHA de commit en optionalDeps

Paquetes afectados

Oleada 1: TanStack (42 paquetes)

Solo se vieron afectados @tanstack/router* y @tanstack/start*. NO afectados: @tanstack/query*, @tanstack/table*, @tanstack/form*, @tanstack/virtual*, @tanstack/store.

PaqueteVersiones maliciosasPrimera versión segura
@tanstack/react-router1.169.5, 1.169.81.169.9
@tanstack/router-core1.169.5, 1.169.81.169.9
@tanstack/vue-router1.169.5, 1.169.81.169.9
@tanstack/solid-router1.169.5, 1.169.81.169.9
@tanstack/react-start1.167.68, 1.167.711.167.72
@tanstack/router-plugin1.167.38, 1.167.411.167.42

Consulte el aviso completo para los 42 paquetes.

Oleada 2: Cuenta atool (314 paquetes)

Todos los paquetes publicados por el usuario de npm atool ([email protected]) recibieron versiones maliciosas el 19 de mayo de 2026. Los paquetes de alto impacto incluyen:

PaqueteDescargas mensuales
size-sensor4.2M
echarts-for-react3.8M
@antv/scale2.2M
timeago.js1.15M

Además de 310+ paquetes principalmente en el ámbito @antv/* (@antv/g2, @antv/g6, @antv/l7, @antv/s2, @antv/x6, @antv/f2, etc.), ai-figure, timeago-react, jest-canvas-mock, jest-date-mock y otros.

Consulte el informe de SafeDep para la lista completa.

Mitigación (si está comprometido)

CRÍTICO: Deshabilite el interruptor de hombre muerto ANTES de revocar cualquier token. El malware borra $HOME si los tokens se revocan mientras el daemon está activo.

  1. Mate los demonios de persistencia (gh-token-monitor Y kitty-monitor) y elimine los servicios de LaunchAgent/systemd.
  2. Elimine los archivos de persistencia (.claude/router_runtime.js, .vscode/setup.mjs, ~/.local/share/kitty/cat.py, /var/tmp/.gh_update_state, etc.)
  3. Borre node_modules y los archivos lock, reinstale con --ignore-scripts
  4. Rote TODAS las credenciales (npm, GitHub, AWS, GCP, claves SSH, tokens de Vault, tokens de gestores de contraseñas, etc.)
  5. Bloquee los dominios del atacante a nivel de DNS/cortafuegos (api.masscan.cloud, filev2.getsession.org, git-tanstack.com, t.m-kosche.com)
  6. Audite los registros del proveedor de nube para el 11-19 de mayo de 2026

Anuncios oficiales y referencias

Oleada 1: TanStack (11 de mayo)

Descargar herramienta