node.js npm package.json package-lock.json

node.js - ¿Cómo soluciono un paquete npm vulnerable en mi package-lock.json que no aparece en package.json?



(7)

Github me dice que una dependencia en mi archivo package-lock.json es vulnerable y está desactualizada. El problema es que si hago npm install o npm update , ninguno de ellos actualiza la dependencia en el archivo package-lock.json.

He hecho un montón de googlear en esto, así como borrado el archivo y hecho la npm install .

Si alguien puede ayudar a resolver esto, lo apreciaría enormemente. El paquete en cuestión es Hoek, que en realidad no tengo en mi archivo package.json.

Muchas gracias de antemano.


Parece que Hoek depende de sus dependencias (por lo tanto, un paquete que tiene en su package.json lo requiere de su propio package.json).

Ya ha intentado eliminar / reinstalar y actualizar las dependencias de su proyecto sin éxito, por lo que parece que la dependencia del paquete en cuestión tiene una versión explícita o máxima especificada.

Sin ver el package.json para cada una de sus dependencias, sería difícil aconsejar más sobre cómo forzar una actualización.

Edición: para ayudarlo a identificar qué paquetes están usando qué dependencias, puede usar el comando ls de NPM: https://docs.npmjs.com/cli/ls

Por ejemplo, para ver qué paquetes están usando Hoek: npm ls hoek

Edición 2: como Ulysse BN señala correctamente, si tiene la versión 6 o posterior de NPM, puede usar la npm audit fix para pedirle a NPM que intente arreglar las vulnerabilidades para usted.


Si tiene npm @ 6 o posterior, puede usar la npm audit fix para sus problemas de seguridad.


TLDR: actualice el paquete primario utilizando npm i $PARENT_PKG_NAME .

Diagnóstico

npm audit revelará el paquete vulnerable (tenga en cuenta que necesitará un archivo package-lock.json para esto, por lo que deberá ejecutar npm i ), así como el paquete del que depende (si corresponde) ). (Tenga en cuenta que también puede usar npm ls $CHILD_PKG_NAME para ver sus dependencias principales.

Intento de solución rápida

npm audit fix y npm audit fix --force , pero a veces la corrección debe realizarse manualmente (ver más abajo).

Arreglo manual

Lo más probable es que el paquete primario ya haya arreglado sus dependencias (puede verificar esto yendo a su GitHub y revisando las confirmaciones recientes, o simplemente viendo si esto lo soluciona), así que puede ejecutar npm i $PARENT_PKG_NAME y se actualizará su paquete-lock.json.

Verificar Arreglo

Ahora puede verificar que funcionó ejecutando la npm audit y asegurándose de que no se muestren vulnerabilidades. ¡Confíe sus cambios, empújelos a GitHub, actualice sus notificaciones / alertas y deberían haberse ido!


Tuve este problema y descubrí que se debía a que el servidor en el que estaba ejecutando npm tenía una versión antigua de npm en él: package-lock.json solo es compatible con las versiones más nuevas.


Utilizar:

npm i hoek

npm instalará la última versión de hoek y tu package.lock.json se actualizará.



package-lock.json esto: vaya a la raíz de su proyecto, elimine el archivo package-lock.json , las carpetas node_modules y .cache , y luego npm install .