123% más CVE notificadas al día en 2026 que el año pasado.

Dependencias

npm audit

npm audit coteja los paquetes de su proyecto con avisos de seguridad conocidos e informa de lo que encuentra. Viene con npm, no cuesta nada y tarda segundos, lo que lo convierte en el escaneo SCA más fácil que puede ejecutar. Saber qué lee le indica qué se le puede escapar.

Actualizado el

Cómo funciona npm audit

npm audit envía una descripción de las dependencias de su proyecto a su registro predeterminado y solicita las vulnerabilidades conocidas. Necesita un archivo package-lock.json o shrinkwrap, porque así sabe qué versiones tiene. Consulte los detalles en la documentación de npm.

npm audit                       # report everything
npm audit --omit=dev            # skip dev dependencies
npm audit --audit-level=high    # fail only on high or critical
npm audit --json                # machine-readable output

Cómo leer el informe

  • La gravedad procede del aviso. Indica lo grave que es el fallo en general, no lo grave que es para usted.
  • La ruta de dependencias muestra a través de qué dependencia entró el paquete. La mayoría de los hallazgos son dependencias transitivas, y la corrección suele estar en el paquete superior.
  • Desarrollo o producción. Un fallo en una herramienta de pruebas no llega a los usuarios, aunque sigue ejecutándose en su build, así que no lo ignore del todo.

Si obtiene una lista larga, empiece por lo que se está explotando y lo que se distribuye. Consulte cómo priorizar vulnerabilidades.

npm audit fix, y cuándo no forzarlo

Comando Qué hace Riesgo
npm audit fix Aplica actualizaciones compatibles dentro de sus rangos de versiones Bajo. Ejecute sus tests de todos modos, porque realiza una instalación completa
npm audit fix --force Permite además cambios fuera de sus rangos, incluidas versiones mayores Alto. Puede romper su aplicación, y npm indica que no se use sin tener claro lo que se quiere

Si no hay una corrección disponible, puede actualizar el paquete padre o usar el campo overrides de package.json para forzar una versión transitiva parcheada. Pruébelo, porque el paquete padre no se creó con esa versión.

Ejecutar npm audit en CI

De forma predeterminada, npm audit termina con un código distinto de cero cuando encuentra algo, lo que hace fallar el job por cualquier aviso de gravedad baja. Los equipos suelen fijar un umbral. Tenga en cuenta que --audit-level solo cambia el umbral de fallo y no filtra el informe.

- run: npm ci
- run: npm audit --omit=dev --audit-level=high

Una comprobación así también puede hacer fallar un build sin ningún cambio en el código, porque se publicó un aviso nuevo durante la noche. Decida quién se responsabiliza de ese fallo antes de activarla. Para más información, consulte dónde ejecutar los escaneos SCA.

Qué se le escapa a npm audit

  • Todo lo que está fuera de npm. Su imagen base, los paquetes del sistema operativo, las herramientas de Python y las GitHub Actions no están en package-lock.json.
  • El código descargado durante la instalación. Los scripts de instalación pueden descargar archivos que ningún lockfile registra. Consulte lo que no registra un lockfile.
  • Los paquetes maliciosos nuevos. Coteja avisos publicados, así que un paquete que aún no tiene aviso pasa limpio.
  • Lo que ya se distribuyó. Informa sobre el proyecto que tiene delante. Un aviso nuevo para la versión del año pasado solo aparece si alguien vuelve a ejecutarlo sobre esa versión.
  • Si realmente le afecta. No sabe si su código usa la función vulnerable. El análisis de alcanzabilidad se ocupa de eso.

npm audit signatures es un comando aparte que verifica las firmas del registro y las atestaciones de procedencia de los paquetes que ha instalado. Comprueba de dónde procede un paquete, no si es seguro.

npm audit y CRACI

Siga ejecutando npm audit en las pull requests. Es gratuito y detecta pronto los problemas conocidos. CRACI cubre lo que npm audit no puede ver: como su runner de GitHub Actions, registra cada paquete que cada job descargó realmente de npm y de cualquier otra fuente, incluidos los paquetes restaurados desde cachés de CI y los archivos descargados por hooks de instalación. Después sigue comprobando la SBOM de lo distribuido a medida que se publican nuevas vulnerabilidades. Consulte las mejores herramientas de SCA o la generación de SBOM durante el build.

npm audit: preguntas frecuentes

¿Qué hace npm audit?

Envía una descripción de sus dependencias al registro de npm, las coteja con avisos de seguridad conocidos e informa de los paquetes vulnerables, con su gravedad y la forma en que llegaron a su proyecto.

¿Es seguro npm audit fix?

npm audit fix sin más suele ser seguro, porque se mantiene dentro de sus rangos de versiones, pero ejecute sus tests después. npm audit fix --force puede instalar nuevas versiones mayores y romper su aplicación.

¿Por qué npm audit muestra tantas vulnerabilidades?

La mayoría procede de dependencias transitivas y herramientas de desarrollo. Use --omit=dev para centrarse en lo que se distribuye, y priorice por explotación y exposición en lugar de por el recuento.

¿Cómo se ignora una vulnerabilidad en npm audit?

npm audit no tiene una lista de exclusiones integrada. Los equipos usan el campo overrides para cambiar la versión, un umbral con --audit-level o una herramienta envolvente que registra los hallazgos aceptados.

¿npm audit necesita un lockfile?

Sí, de forma predeterminada necesita package-lock.json o un archivo shrinkwrap. Puede evitarlo con --no-package-lock, pero entonces los resultados pueden variar entre ejecuciones.

¿npm audit detecta malware?

Solo cuando ya se ha publicado un aviso para el paquete. Un paquete malicioso nuevo no tiene aviso, así que no se notificará el día en que aparezca.

Vea lo que npm audit no puede ver

Ejecute un workflow de GitHub Actions en CRACI y compare su SBOM registrada con su package-lock.json.

Reservar una demo