Seguridad: auditar y remediar vulnerabilidades

Aprende a usar npm audit para detectar vulnerabilidades en tus dependencias, npm audit fix para remediar problemas conocidos, y mejores prácticas para mantener tus proyectos seguros.

Las vulnerabilidades en dependencias son una de las principales causas de brechas de seguridad. Un paquete aparentemente inofensivo puede contener código malicioso o tener vulnerabilidades conocidas que los atacantes explotan.

En esta lección vas a aprender a auditar tus proyectos con npm audit, interpretar los informes de seguridad, y aplicar fixes de forma segura. También conocerás herramientas adicionales como npm ci y cómo prevenir problemas.

Al terminar, sabrás mantener tus proyectos libres de vulnerabilidades conocidas.

  • Conoce los problemas de seguridad de tus dependencias.
  • npm audit analiza tu proyecto contra la base de datos de vulnerabilidades conocida (mantenida por el npm Security Team). El comando muestra un informe con todas las vulnerabilidades encontradas, clasificadas por severidad: critical, high, moderate, low.
  • Ejecuta npm audit regularmente, especialmente antes de deployments.
  • Actualiza paquetes para resolver problemas.
  • npm audit fix intenta actualizar automáticamente los paquetes a versiones que resuelvan las vulnerabilidades. Para vulnerabilidades que tienen fix disponible, esto suele funcionar.

npm audit: detectar vulnerabilidades

Conoce los problemas de seguridad de tus dependencias.

npm audit analiza tu proyecto contra la base de datos de vulnerabilidades conocida (mantenida por el npm Security Team). El comando muestra un informe con todas las vulnerabilidades encontradas, clasificadas por severidad: critical, high, moderate, low.

Ejecuta npm audit regularmente, especialmente antes de deployments.

npm audit fix: remediar vulnerabilidades

Actualiza paquetes para resolver problemas.

npm audit fix intenta actualizar automáticamente los paquetes a versiones que resuelvan las vulnerabilidades. Para vulnerabilidades que tienen fix disponible, esto suele funcionar.

Para vulnerabilidades sin fix automático, el comando te avisa y sugiere alternativas.

Entender los niveles de severidad

Critical, high, moderate, low.

npm clasifica vulnerabilidades por severidad: critical (ejecución remota de código), high (denegación de servicio, acceso no autorizado), moderate (impacto limitado), low (impacto mínimo).

Prioriza siempre las vulnerabilidades critical y high.

  • Critical: ejecutar código arbitrario
  • High: denial of service, acceso no autorizado
  • Moderate: impacto limitado
  • Low: generalmente cosmético

Prevención: mejores prácticas

Evita problemas desde el inicio.

Usa npm ci en lugar de npm install en CI/CD para instalaciones reproducibles y auditadas. Considera usar npm audit como parte de tu pipeline de CI.

Mantén dependencias actualizadas regularmente. Suscríbete a alertas de seguridad de tus paquetes críticos.

  • Usa npm ci en producción
  • Ejecuta npm audit en CI
  • Mantén dependencias actualizadas
  • Revisa paquetes antes de instalar
NPM
13

Seguridad: auditar y remediar vulnerabilidades

Aprende a usar npm audit para detectar vulnerabilidades en tus dependencias, npm audit fix para remediar problemas conocidos, y mejores prácticas para mantener tus proyectos seguros.

Código del tema: npm audit

📘 Teoría

npm audit: detectar vulnerabilidades

Conoce los problemas de seguridad de tus dependencias.

npm audit analiza tu proyecto contra la base de datos de vulnerabilidades conocida (mantenida por el npm Security Team). El comando muestra un informe con todas las vulnerabilidades encontradas, clasificadas por severidad: critical, high, moderate, low.

Ejecuta npm audit regularmente, especialmente antes de deployments.

Auditar vulnerabilidades
# Ver informe de vulnerabilidades
npm audit

# Formato JSON para scripts
npm audit --json

npm audit fix: remediar vulnerabilidades

Actualiza paquetes para resolver problemas.

1

npm audit fix intenta actualizar automáticamente los paquetes a versiones que resuelvan las vulnerabilidades. Para vulnerabilidades que tienen fix disponible, esto suele funcionar.

2

Para vulnerabilidades sin fix automático, el comando te avisa y sugiere alternativas.

Fix vulnerabilidades
# Intentar fix automático
npm audit fix

# Fix solo vulnerabilities de seguridad
npm audit fix --force

# Ver qué se cambió
npm audit fix --dry-run

Entender los niveles de severidad

Critical, high, moderate, low.

npm clasifica vulnerabilidades por severidad: critical (ejecución remota de código), high (denegación de servicio, acceso no autorizado), moderate (impacto limitado), low (impacto mínimo).

Prioriza siempre las vulnerabilidades critical y high.

  • Critical: ejecutar código arbitrario
  • High: denial of service, acceso no autorizado
  • Moderate: impacto limitado
  • Low: generalmente cosmético

Prevención: mejores prácticas

Evita problemas desde el inicio.

Usa npm ci en lugar de npm install en CI/CD para instalaciones reproducibles y auditadas. Considera usar npm audit como parte de tu pipeline de CI.

Mantén dependencias actualizadas regularmente. Suscríbete a alertas de seguridad de tus paquetes críticos.

  • Usa npm ci en producción
  • Ejecuta npm audit en CI
  • Mantén dependencias actualizadas
  • Revisa paquetes antes de instalar

🧪 Aprende probando

Ejemplo Ejemplo: auditar un proyecto Ejecuta npm audit en un proyecto.

🏁 Retos

Reto Reto 1: Ejecutar auditoría Ejecuta npm audit y revisa el informe.
Reto Reto 2: Remediar vulnerabilidades Usa npm audit fix para resolver problemas.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre NPM.

Test de NPM

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .