Ataque “Sha1-Hulud” compromete más de 25.000 paquetes npm y pone en riesgo la cadena de suministro de software

Implementación de la Directiva Europea NIS2 en España: impacto normativo y técnico
23 de noviembre de 2025
Alerta crítica: explotación activa de una vulnerabilidad RCE en firewalls WatchGuard Firebox
21 de diciembre de 2025

Una nueva oleada del ataque conocido como Sha1-Hulud ha comprometido más de 25.000 paquetes dentro del ecosistema npm, convirtiéndose en uno de los incidentes más graves de los últimos años en la cadena de suministro de software. El ataque combina técnicas de exfiltración de credenciales y sabotaje de sistemas de desarrollo, afectando tanto a desarrolladores individuales como a organizaciones de todos los tamaños.

Esta campaña demuestra hasta qué punto los entornos de desarrollo se han convertido en objetivos prioritarios, ya que desde ellos se pueden escalar ataques hacia repositorios, infraestructuras cloud y sistemas productivos.

¿Cómo funciona el ataque?

El vector principal consiste en la inserción de scripts maliciosos de preinstalación dentro de paquetes npm legítimos que han sido comprometidos o secuestrados.

Cuando un desarrollador instala uno de estos paquetes, el script se ejecuta automáticamente y realiza las siguientes acciones:

  • Registra la máquina como un runner de GitHub con el nombre SHA1HULUD.
  • Escanea el sistema usando herramientas como TruffleHog en busca de secretos, tokens y credenciales.
  • Exfiltra la información encontrada hacia repositorios privados controlados por los atacantes.
  • Si no logra obtener credenciales válidas, activa un mecanismo destructivo que puede eliminar el directorio principal del usuario, provocando pérdida de datos.

Este comportamiento convierte a Sha1-Hulud en una amenaza híbrida entre espionaje y sabotaje.

Impacto para organizaciones y desarrolladores

El ataque tiene consecuencias directas sobre:

  • Robo de credenciales de GitHub, npm y servicios cloud.
  • Compromiso de repositorios privados y pipelines CI/CD.
  • Propagación a través de dependencias transitivas.
  • Interrupción operativa por borrado de directorios de trabajo.
  • Pérdida de confianza en la integridad del ecosistema open source.

Además, una sola instalación puede convertir una máquina en un nodo activo del ataque, facilitando su expansión silenciosa.

Indicadores de compromiso

Algunos indicadores técnicos asociados a esta campaña incluyen:

  • Presencia de archivos como setup_bun.js, bun_environment.js o discussion.yaml.
  • Runners de GitHub registrados con el nombre SHA1HULUD.
  • Conexiones salientes sospechosas durante la instalación de paquetes npm.
  • Borrado inesperado de directorios del usuario.

Cómo detectar y mitigar el ataque

Se recomienda a las organizaciones:

  • Auditar paquetes npm utilizados y revisar cambios recientes en dependencias.
  • Monitorizar runners y pipelines CI/CD en busca de registros no autorizados.
  • Rotar inmediatamente todas las credenciales potencialmente expuestas.
  • Restringir o deshabilitar la ejecución automática de scripts de instalación.
  • Aplicar autenticación multifactor a cuentas de mantenedor y repositorios críticos.
  • Supervisar el comportamiento de los equipos mediante soluciones EDR.

PoC y herramienta de verificación

Existe una herramienta pública que permite detectar indicios de infección por Sha1-Hulud en entornos de desarrollo:

Sha1-Hulud Checker

Repositorio: https://github.com/moften/Shai-Hulud-Checker

Este PoC permite:

  • Analizar un sistema en busca de archivos, runners y configuraciones asociadas al ataque.
  • Identificar rápidamente si un entorno ha sido comprometido.
  • Facilitar la respuesta temprana antes de que el ataque se propague.

Su uso es recomendable como parte de un proceso de verificación post-incidente.

Sha1-Hulud representa una evolución peligrosa en los ataques a la cadena de suministro: no solo roba información, sino que castiga activamente a los sistemas que no puede explotar. La automatización, el uso de herramientas legítimas y la explotación de la confianza en npm lo convierten en un vector extremadamente eficaz.

Este incidente refuerza la necesidad de tratar los entornos de desarrollo como activos críticos de seguridad y no como simples estaciones de trabajo.