Dependencias Desactualizadas con CVEs Conocidos
Paquetes npm u otras dependencias con vulnerabilidades de seguridad publicadas (CVEs) que no se han actualizado, dejando vectores de ataque conocidos abiertos en tu app.
Cómo Funciona
Cuando se publica un CVE para un paquete, el código de exploit suele aparecer en días. Si tu app corre una versión vieja de `express`, `jsonwebtoken` o incluso una dependencia transitiva, los atacantes pueden usar el exploit documentado directamente. El reporte de Veracode 2024 encontró que el 70% de las apps tenían al menos una dependencia vulnerable.
// MAL: package.json con versiones vulnerables
{
"dependencies": {
"jsonwebtoken": "8.5.1",
"express": "4.17.1",
"node-fetch": "2.6.0"
}
}// BIEN: ejecuta estos comandos regularmente
// npm audit — muestra CVEs conocidos
// npm audit fix — auto-arregla updates sin breaking changes
// npx npm-check-updates -u — sube todo a la última versión
// Luego: npm install && corre tus testsEjemplo Real
La vulnerabilidad Log4Shell (CVE-2021-44228) golpeó a organizaciones que no habían actualizado log4j en años. Las empresas corrieron durante las vacaciones a parchear una librería enterrada 5 niveles profundo en su árbol de dependencias.
Cómo Prevenirlo
- Corre npm audit en tu pipeline de CI y falla los builds en CVEs de nivel alto/crítico
- Usa Dependabot o Renovate para automatizar PRs de actualización de dependencias
- Fija versiones exactas en producción y usa un lockfile (package-lock.json)
- Suscríbete a avisos de seguridad de tus dependencias más críticas
Tecnologías Afectadas
Data Hogo detecta esta vulnerabilidad automáticamente.
Escanea Tu Repo GratisVulnerabilidades Relacionadas
API Keys Hardcodeadas
criticalAPI keys, tokens o secretos escritos directo en el código fuente, visibles para cualquiera con acceso al repo — incluyendo repos públicos de GitHub.
Sin Validación de Inputs
mediumDatos enviados por el usuario pasados directo a bases de datos o APIs externas sin ninguna validación de tipo, formato o contenido.
Contraseñas en Texto Plano
criticalContraseñas de usuarios guardadas como strings crudos en la base de datos en lugar de hashearse con bcrypt o Argon2.
JWT Sin Expiración
highJWTs firmados sin el claim `exp` que nunca expiran, lo que significa que un token robado da acceso permanente sin forma de revocarlo.