Typosquatting de Paquetes
Instalar un paquete con un nombre que difiere por un caracter de una librería popular puede instalar malware en vez del paquete real.
Cómo Funciona
Los atacantes registran nombres de paquetes que parecen populares (lodahs, expres, coloers) y les incrustan código que roba credenciales o backdoors. Un typo en npm install y código malicioso corre en tu entorno de build con acceso completo al sistema de archivos y variables de entorno.
// MAL: un typo instala un paquete malicioso
// package.json
{
"dependencies": {
"lodahs": "^4.17.0",
"coloers": "^1.4.0"
}
}// BIEN: verifica los nombres exactos de paquetes antes de instalar
// package.json
{
"dependencies": {
"lodash": "^4.17.0",
"colors": "^1.4.0"
}
}Ejemplo Real
En 2022, el mantenedor de 'node-ipc' intencionalmente agregó código malicioso. El mismo año, 'colors' y 'faker' fueron saboteados por sus autores. Pero víctimas accidentales de typosquatting incluyen paquetes como 'event-stream' (2018), transferido a un actor malicioso y descargado 2 millones de veces con un backdoor de billetera Bitcoin.
Cómo Prevenirlo
- Siempre verifica los nombres de paquetes en npmjs.com antes de instalar
- Usa npm audit y socket.dev para detectar paquetes sospechosos
- Habilita el flag --ignore-scripts de npm en CI para prevenir la ejecución de scripts postinstall
- Fija versiones exactas en package.json para dependencias críticas y verifica checksums
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
Paquetes Abandonados
mediumLas dependencias que no han sido actualizadas en 2+ años no recibirán parches de seguridad cuando se descubran nuevas vulnerabilidades.
Scripts de Instalación Maliciosos
highLos 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.
Confusión de Dependencias
highLos paquetes internos privados sin prefijo de scope pueden ser hijackeados publicando un paquete público con el mismo nombre pero mayor versión.
Lockfile Faltante
mediumSin un lockfile, npm install resuelve la versión compatible más reciente de cada dependencia — lo que puede introducir un paquete comprometido en tu próximo deploy.