66 votos

Forma correcta de corregir una posible vulnerabilidad de seguridad en una dependencia definida en package-lock.json

Github me ha dado este error en uno de mis repositorios.

We found a potential security vulnerability in one of your dependencies.
A dependency defined in ./package-lock.json has known security vulnerabilities 
and should be updated.

La dependencia no está definida en nuestro package.json archivo. A mi entender no es una buena práctica borrar el archivo package-lock.json y regenerarlo. Sin embargo, no veo otra forma de solucionar este problema. Si descarto esta vulnerabilidad de seguridad, volverá a aparecer un par de días después. ¿Alguna idea? Gracias.

37voto

Jo-Go Puntos 1048

Nuevo: ahora, con npm@6 puedes ejecutar directamente

npm audit fix

Respuesta antigua:

Debe intentar identificar el nombre del paquete problemático y, a continuación, ejecutar

npm install package-name

sustituyendo a nombre-paquete, obviamente.

Esto instalará la última versión del paquete, y muy a menudo, la última versión ha solucionado el problema de seguridad. Si usted tiene una restricción en la versión (por ejemplo: 1.2), siempre se puede tratar de:

npm install package-name@^1.2

y se instalará la última versión parcheada

6voto

RileyManda Puntos 731

Para resolverlo:

Solución1: Primero encuentra la vulnerabilidad:U cd en su proyecto a continuación, ejecute "npm ls hoek"

Y por último: npm install bcrypt@latest

A continuación, envíe el proyecto actualizado a git (es decir, realice un nuevo commit).

Solución 2:

si la primera opción/solución no resuelve el problema.Cambie la versión manualmente en su package-lock.json. Cambie su versión manualmente de 2.16.3 a 4.2.1

"hoek": {
      "version":  "4.2.1",
      "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
      "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=",
      "dev": true

A continuación, actualiza tu proyecto en GitHub(commit/push) Sólo asegúrese de que cada ocurrencia versión hoek en su versión package-lock.json se cambia a 4.2.1

Alternativamente, si usted puede encontrar una manera de cambiar la versión hoek / actualizar hoek usando npm, hará las cosas mucho más simples.(algo así como : npm update @hoek..version ) o desinstalar la dependencia específica y luego reinstalarla usando bower o npm.

3voto

VonC Puntos 414372

A mi entender, no es una buena práctica borrar el archivo package-lock.json y volver a generarlo.

Sin embargo, es lo que se suele hacer en este caso.
Véase, por ejemplo angular/angular-cli problema 8534 que se resuelve mediante PR 8535 .
Eso lleva a un proyecto dependiente como frees-io/freestyle-opscenter-webclient a actualizar su package-lock.json : PR 31 .

2voto

adrianmc Puntos 901

La forma más sencilla de solucionarlo es:

  1. npm install <dep>
  2. npm uninstall <dep>
  3. npm update
  4. npm install

De: https://github.com/Microsoft/vscode/issues/48783#issuecomment-384873041

2voto

JohnSk Puntos 28

Estaba teniendo el mismo problema con una vulnerabilidad de seguridad lodash, en un proyecto que estaba construyendo con yarn. Github marcó estos como problemas de seguridad.

He intentado la respuesta de @rileymanda más arriba, utilizando un terminal: cd en el proyecto, a continuación, ejecute npm ls lodash .

Esto descubrió que en mi caso, el error estaba en react-scripts . Una búsqueda rápida en Google de problemas con react-scripts y lodash descubrió que se trataba de un problema conocido.

He intentado varias cosas para arreglar a través de hilo - todo sin éxito. npm ls lodash todavía mostraba la versión vulnerable de lodash en uso.

Habiendo leído Blog de Matt Turnbull sobre las mejoras de npm He cambiado de yarn a npm. (Borrar yarn.lock borrar ./node_modules . Ejecute npm install ). npm ls lodash muestra ahora las últimas versiones de las dependencias utilizadas. Comprometido a github, y ahora estaba feliz de que la vulnerabilidad se había ido.

Parece que el hilo tiene dificultades para desentrañar estas cuestiones (o no lo pretende).

Si tienes este problema al compilar con yarn, prueba a cambiar [de nuevo] a npm.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X