{"id":18048,"date":"2026-06-26T12:22:23","date_gmt":"2026-06-26T12:22:23","guid":{"rendered":"https:\/\/www.securitytoday.de\/?p=18048"},"modified":"2026-06-26T12:52:53","modified_gmt":"2026-06-26T12:52:53","slug":"mini-shai-hulud-el-gusano-npm-devora-la-cadena-de-suministro","status":"publish","type":"post","link":"https:\/\/www.securitytoday.de\/es\/2026\/06\/26\/mini-shai-hulud-el-gusano-npm-devora-la-cadena-de-suministro\/","title":{"rendered":"Mini Shai-Hulud: el gusano npm devora la cadena de suministro"},"content":{"rendered":"<p style=\"color:#69d8ed;font-size:0.9em;margin:0 0 16px;padding:0;\">7 min de lectura<\/p>\n<p><strong>El 11 de mayo de 2026, Microsoft Security Research informa de una nueva ola del gusano npm Shai-Hulud: 170 paquetes npm afectados y dos paquetes PyPI, distribuidos en 404 versiones maliciosas de paquetes.<\/strong> Es la primera campa\u00f1a coordinada que afecta simult\u00e1neamente a npm y PyPI. Lo notable no es la cifra, sino su arquitectura. Mini Shai-Hulud roba credenciales y, adem\u00e1s, se propaga por s\u00ed mismo a trav\u00e9s de los propios canales de publicaci\u00f3n fiables que sostienen las cadenas de suministro de software modernas.<\/p>\n<div style=\"background:#003340;color:#fff;padding:32px 36px;margin:32px 0;border-radius:8px;\">\n<p style=\"margin:0 0 18px 0;font-size:0.95em;font-weight:800;text-transform:uppercase;letter-spacing:0.2em;color:#69d8ed;border-bottom:2px solid rgba(105,216,237,0.25);padding-bottom:12px;\">Lo m\u00e1s importante en resumen<\/p>\n<ul style=\"margin:0;padding-left:22px;color:rgba(255,255,255,0.92);line-height:1.6;\">\n<li><strong style=\"color:#69d8ed;\">El gusano se propaga por s\u00ed mismo:<\/strong> Los permisos de OIDC y publicaci\u00f3n robados generan nuevas versiones maliciosas bajo identidades reales de mantenedores, sin necesidad de nuevos accesos por phishing.<\/li>\n<li><strong style=\"color:#69d8ed;\">Persistencia m\u00e1s all\u00e1 del paquete:<\/strong> El c\u00f3digo malicioso se aloja en parte en las configuraciones de los desarrolladores y permanece activo incluso despu\u00e9s de eliminar el paquete infectado.<\/li>\n<li><strong style=\"color:#69d8ed;\">Los tokens son la puerta de entrada:<\/strong> Quien apueste por npm Trusted Publishing y WebAuthn en lugar de tokens de larga duraci\u00f3n, cerrar\u00e1 la principal v\u00eda de propagaci\u00f3n.<\/li>\n<\/ul>\n<\/div>\n<p style=\"font-size:0.88em;color:#666;margin:20px 0 32px 0;border-top:1px solid #e5e5e5;border-bottom:1px solid #e5e5e5;padding:10px 0;\"><span style=\"color:#004a59;font-weight:700;text-transform:uppercase;font-size:0.72em;letter-spacing:0.14em;margin-right:14px;\">Relacionado:<\/span><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/06\/22\/la-brecha-de-splunk-que-elimina-archivos-sin-inicio-de-sesion\/\" style=\"color:#333;text-decoration:underline;\">La brecha de Splunk sin inicio de sesi\u00f3n<\/a>&nbsp;&nbsp;<span style=\"color:#ccc;\">\/<\/span>&nbsp;&nbsp;<a href=\"https:\/\/www.securitytoday.de\/es\/2026\/06\/20\/identidades-de-maquinas-offboarding-owasp-nhi\/\" style=\"color:#333;text-decoration:underline;\">Identidades de m\u00e1quinas en el offboarding<\/a><\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Una segunda ola, mayor y m\u00e1s coordinada<\/h2>\n<p>Shai-Hulud no es un nombre nuevo. Entre el 24 de noviembre y el 1 de diciembre de 2025, la primera ola comprometi\u00f3 cientos de paquetes npm, entre los que se inclu\u00edan componentes de los ecosistemas de Zapier, PostHog, Postman, ENS Domains y AsyncAPI. La variante que Microsoft documenta a principios de mayo de 2026 lleva el nombre de Mini Shai-Hulud y da un paso m\u00e1s. Vuelve a afectar a proyectos destacados como TanStack, Mistral AI, UiPath, OpenSearch y AntV, y abarca por primera vez ambos grandes registros.<\/p>\n<p>Las 404 versiones maliciosas representan la cantidad de estados de paquetes manipulados, distribuidos entre los 170 paquetes npm y los dos paquetes PyPI. Esta cifra no tiene nada que ver con errores HTTP. Para los equipos de seguridad, esto cambia el enfoque de la b\u00fasqueda: ya no se trata de un \u00fanico paquete comprometido, sino de una cadena de publicaciones que se retroalimentan.<\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">La mec\u00e1nica: preinstall se ejecuta antes de cada prueba<\/h2>\n<p>El ataque comienza en la debilidad m\u00e1s vulnerable del proceso de instalaci\u00f3n. Un script malicioso preinstall en la package.json se ejecuta autom\u00e1ticamente al instalar, antes de que las pruebas o revisiones de seguridad puedan actuar. Este ventanillo temporal es el punto de entrada. En \u00e9l, un script de configuraci\u00f3n llamado <span style=\"font-family:monospace;background:#f4f4f4;padding:1px 5px;border-radius:3px;font-size:0.92em;\">set_bun.js<\/span> instala, si es necesario, la alternativa Runtime JavaScript Bun y ejecuta a trav\u00e9s de ella el propio c\u00f3digo da\u00f1ino contenido en el archivo <span style=\"font-family:monospace;background:#f4f4f4;padding:1px 5px;border-radius:3px;font-size:0.92em;\">bun_environment.js<\/span>.<\/p>\n<p>Lo que sucede despu\u00e9s es una cosecha sistem\u00e1tica. El c\u00f3digo malicioso descarga un runner de GitHub Actions y utiliza el esc\u00e1ner de credenciales TruffleHog para extraer secretos de los repositorios y variables de entorno. La presa va directamente a repositorios bajo control de los atacantes. Se roban mucho m\u00e1s de solo tokens de npm: accesos AWS-SSO e IMDS-v2, datos de inicio de sesi\u00f3n de Azure, Google Cloud y Kubernetes, claves SSH, secretos de configuraci\u00f3n locales e incluso billeteras criptogr\u00e1ficas.<\/p>\n<div style=\"background:#0a2e3d;border-radius:8px;padding:28px 32px;margin:32px 0;\">\n<div style=\"color:#69d8ed;font-size:2.4em;font-weight:800;line-height:1;margin-bottom:8px;\">404 versiones<\/div>\n<div style=\"color:#ffffff;font-size:1.02em;line-height:1.5;margin-bottom:10px;\">paquetes maliciosos distribuyeron Mini Shai-Hulud a trav\u00e9s de 170 paquetes de npm y dos de PyPI, identificados por Microsoft Security Research el 11 de mayo de 2026.<\/div>\n<div style=\"color:rgba(255,255,255,0.55);font-size:0.82em;\">Fuente: Microsoft Security Blog<\/div>\n<\/div>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">\u00bfPor qu\u00e9 el gusano sobrevive aunque el paquete ya no est\u00e9<\/h2>\n<p>La verdadera diferencia con respecto a los ataques tradicionales de cadena de suministro radica en su propagaci\u00f3n. Mini Shai-Hulud aprovecha los derechos OIDC y de publicaci\u00f3n robados para lanzar nuevas versiones maliciosas bajo las identidades de mantenedores reales. A trav\u00e9s de GitHub Trusted Publishing y scripts de ciclo de vida de npm, el ataque se propaga as\u00ed por los canales de publicaci\u00f3n confiables, sin que los atacantes tengan que volver a hacer phishing.<\/p>\n<p>A\u00fan m\u00e1s inc\u00f3modo es su persistencia. Seg\u00fan Microsoft, el c\u00f3digo malicioso se ancla parcialmente mediante hooks de inicio de sesi\u00f3n en el archivo <span style=\"font-family:monospace;background:#f4f4f4;padding:1px 5px;border-radius:3px;font-size:0.92em;\">.claude\/settings.json<\/span> y a trav\u00e9s de la interfaz GraphQL de GitHub. As\u00ed, el ataque sigue viviendo en el entorno de desarrollo, no solo en la dependencia. Quien elimina el paquete infectado y cree que ha terminado, pasa por alto el mecanismo que vuelve a activarse cada vez que se inicia nuevamente la herramienta.<\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">La nueva superficie de ataque: herramientas de desarrollo de IA y runtimes alternativos<\/h2>\n<p>Exactamente aqu\u00ed est\u00e1 la lecci\u00f3n que trasciende este \u00fanico incidente. El gusano no solo se vale de scripts cl\u00e1sicos de npm, sino tambi\u00e9n de una runtime alternativa con Bun y archivos de hook de herramientas modernas de codificaci\u00f3n de IA, junto con un mecanismo de persistencia que rara vez tienen en cuenta los auditor\u00edas convencionales. Una SBOM enumera dependencias, pero no enumera configuraciones de hook en el entorno de desarrollo.<\/p>\n<p>Para la respuesta ante incidentes, esto significa ampliar el alcance. Quien investigue una compromisi\u00f3n en la cadena de suministro deber\u00e1 revisar en el futuro tambi\u00e9n los archivos de configuraci\u00f3n de asistentes de IA, archivos de hook locales y runtimes distintos a Node. No se trata de p\u00e1nico ante la IA. Es simplemente la observaci\u00f3n fr\u00eda de que la superficie de ataque de CI\/CD ha crecido con herramientas que hace dos a\u00f1os no estaban presentes en todos los equipos de desarrollo.<\/p>\n<h2 style=\"margin-top:48px;margin-bottom:18px;\">Defensa: Tokens sustituir, identidad reforzar, pipeline firmar<\/h2>\n<p>La buena noticia es que las medidas m\u00e1s efectivas son principios, no productos. Microsoft y varias empresas de seguridad como Akamai, Snyk y StepSecurity, que informaron en paralelo a la campa\u00f1a, llegan a un n\u00facleo consistente. Los mantenedores deber\u00edan utilizar npm Trusted Publishing en lugar de tokens de larga vida, ya que un token robado es el combustible de la auto-propagaci\u00f3n. Una autenticaci\u00f3n de dos factores basada en WebAuthn protege mejor que TOTP, que puede ser phishing. Y las firmas de comit\u00e9s hacen visibles las versiones falsas.<\/p>\n<p>En el \u00e1mbito del usuario, importa la velocidad. Quien pueda estar afectado debe rotar inmediatamente los datos de acceso expuestos, en lugar de esperar. La creaci\u00f3n autom\u00e1tica de SBOM y el escaneo sin agentes ayudan a detectar las versiones manipuladas incluso antes de su aparici\u00f3n. Reglas para reducir superficies de ataque pueden bloquear scripts obfuscatos antes de que se ejecuten. Para las empresas alemanas entra tambi\u00e9n una dimensi\u00f3n legal. NIS2 convierte la obligaci\u00f3n de cuidado en la cadena de suministro en una exigencia verificable. Un incidente como este es as\u00ed tanto un tema t\u00e9cnico como un tema de documentaci\u00f3n.<\/p>\n<h2 style=\"padding-top:64px;margin-bottom:20px;\">Preguntas frecuentes<\/h2>\n<h3>\u00bfQu\u00e9 es Mini Shai-Hulud?<\/h3>\n<p>Mini Shai-Hulud es una variante del gusano npm Shai-Hulud de 2025. La ola documentada por Microsoft el 11 de mayo de 2026 comprometi\u00f3 170 paquetes npm y dos paquetes PyPI sobre 404 versiones maliciosas y se propaga de forma aut\u00f3noma a trav\u00e9s de los canales de publicaci\u00f3n de la cadena de suministro de software.<\/p>\n<h3>\u00bfC\u00f3mo infecta el gusano un sistema?<\/h3>\n<p>A trav\u00e9s de un script malicioso preinstall, que se ejecuta autom\u00e1ticamente y antes de todos los tests al instalar un paquete. Instala la runtime de Bun, carga un payload y escanea con TruffleHog buscando credenciales, que luego fluyen hacia los atacantes.<\/p>\n<h3>\u00bfPor qu\u00e9 no basta con eliminar el paquete infectado?<\/h3>\n<p>Porque el c\u00f3digo malicioso se ancla en parte fuera de la dependencia, por ejemplo, mediante hooks de SessionStart en la configuraci\u00f3n de herramientas de codificaci\u00f3n de inteligencia artificial y a trav\u00e9s de la interfaz GitHub-GraphQL. Esta persistencia vuelve a activarse cada vez que se inicia la herramienta, incluso si el paquete ya fue eliminado.<\/p>\n<h3>\u00bfQu\u00e9 datos de acceso est\u00e1n afectados?<\/h3>\n<p>Se roban tokens de npm, accesos AWS-SSO e IMDS-v2, credenciales de Azure, Google Cloud y Kubernetes, claves SSH, configuraciones locales de secretos y wallets criptogr\u00e1ficas. Quien sospeche de una compromisi\u00f3n debe rotar inmediatamente los datos de acceso expuestos.<\/p>\n<h3>\u00bfQu\u00e9 significa este incidente para las obligaciones de NIS2?<\/h3>\n<p>NIS2 exige una obligaci\u00f3n de cuidado verificable en la cadena de suministro. Un incidente de cadena de suministro de este tipo afecta as\u00ed m\u00e1s all\u00e1 de la defensa t\u00e9cnica las obligaciones de documentaci\u00f3n y reporte de las empresas afectadas.<\/p>\n<h3>Recomendaciones de lectura de la redacci\u00f3n<\/h3>\n<ul style=\"line-height:1.8;\">\n<li><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/06\/25\/a-partir-de-cuando-el-plazo-de-notificacion-realmente-comienza-a-correr\/\">Cu\u00e1ndo empieza a correr realmente el reloj del plazo de notificaci\u00f3n<\/a><\/li>\n<li><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/06\/24\/proteccion-dns-la-capa-que-muchos-pasan-por-alto\/\">Protective DNS: la capa que muchos pasan por alto<\/a><\/li>\n<li><a href=\"https:\/\/www.securitytoday.de\/es\/2026\/06\/20\/ley-del-techo-critico-resiliencia-fisica-ciso\/\">Ley marco KRITIS: cuando la resiliencia se convierte en obligaci\u00f3n del CISO<\/a><\/li>\n<\/ul>\n<div style=\"margin:40px 0 24px 0;\">\n<p style=\"margin:0 0 12px 0;font-size:0.78em;font-weight:700;text-transform:uppercase;letter-spacing:0.18em;color:#666;\">M\u00e1s de la red MBF Media<\/p>\n<div style=\"padding:14px 18px;border-left:3px solid #0bb7fd;background:#fafafa;margin-bottom:6px;\">\n<div style=\"font-size:0.7em;font-weight:700;color:#0bb7fd;text-transform:uppercase;letter-spacing:0.12em;margin-bottom:4px;\">cloudmagazin<\/div>\n<p><a href=\"https:\/\/www.cloudmagazin.com\/2026\/06\/24\/ingress-nginx-eol-gateway-api-migration\/\" style=\"font-weight:600;line-height:1.4;color:#1a1a1a;text-decoration:none;\">Ingress-NGINX ha sido descontinuado: el camino hacia la Gateway API<\/a><\/p>\n<\/div>\n<div style=\"padding:14px 18px;border-left:3px solid #202528;background:#fafafa;margin-bottom:6px;\">\n<div style=\"font-size:0.7em;font-weight:700;color:#202528;text-transform:uppercase;letter-spacing:0.12em;margin-bottom:4px;\">mybusinessfuture<\/div>\n<p><a href=\"https:\/\/mybusinessfuture.com\/schatten-ki-mittelstand-prozess-signal\/\" style=\"font-weight:600;line-height:1.4;color:#1a1a1a;text-decoration:none;\">IA en la sombra en las pymes: lo que revela su uso clandestino<\/a><\/p>\n<\/div>\n<div style=\"padding:14px 18px;border-left:3px solid #d65663;background:#fafafa;\">\n<div style=\"font-size:0.7em;font-weight:700;color:#d65663;text-transform:uppercase;letter-spacing:0.12em;margin-bottom:4px;\">digital-chiefs<\/div>\n<p><a href=\"https:\/\/www.digital-chiefs.de\/ki-generierter-code-haftung-governance-review-gates-cio\/\" style=\"font-weight:600;line-height:1.4;color:#1a1a1a;text-decoration:none;\">La IA escribe el c\u00f3digo. \u00bfQui\u00e9n asume la responsabilidad?<\/a><\/p>\n<\/div>\n<\/div>\n<p style=\"text-align:right;color:#868e96;font-size:0.85em;margin-top:48px;\"><em>Fuente de la imagen destacada: Pexels \/ Pachon in Motion (px:30547598)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"Mini Shai-Hulud se propaga a s\u00ed mismo a trav\u00e9s de npm y PyPI: c\u00f3mo el gusano de la cadena de suministro Tokens roba y qu\u00e9 deben asegurar ahora los\u2026","protected":false},"author":50,"featured_media":18042,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_yoast_wpseo_focuskw":"Mini Shai-Hulud","_yoast_wpseo_title":"Mini Shai-Hulud: el gusano npm devora la cadena de suministro","_yoast_wpseo_metadesc":"Mini Shai-Hulud se auto-distribuye a trav\u00e9s de npm y PyPI: c\u00f3mo el gusano de la cadena de suministro roba tokens y qu\u00e9 deben asegurar los equipos de\u2026","_yoast_wpseo_meta-robots-noindex":"","_yoast_wpseo_meta-robots-nofollow":"","_yoast_wpseo_meta-robots-adv":"","_yoast_wpseo_canonical":"","_yoast_wpseo_opengraph-title":"","_yoast_wpseo_opengraph-description":"","_yoast_wpseo_opengraph-image":"","_yoast_wpseo_opengraph-image-id":0,"_yoast_wpseo_twitter-title":"","_yoast_wpseo_twitter-description":"","_yoast_wpseo_twitter-image":"","_yoast_wpseo_twitter-image-id":0,"_evm_translation_lang":"","featured_post":0,"featured_post_sortierung":0,"_wp_old_slug":[],"footnotes":""},"categories":[3],"tags":[],"class_list":["post-18048","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aktuelles"],"evm_reading_time_minutes":8,"wpml_language":"es","wpml_translation_of":18041,"_links":{"self":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts\/18048","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/comments?post=18048"}],"version-history":[{"count":1,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts\/18048\/revisions"}],"predecessor-version":[{"id":18049,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/posts\/18048\/revisions\/18049"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/media\/18042"}],"wp:attachment":[{"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/media?parent=18048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/categories?post=18048"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.securitytoday.de\/es\/wp-json\/wp\/v2\/tags?post=18048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}