web-dev-qa-db-fra.com

Moyen approprié de corriger une vulnérabilité de sécurité potentielle dans une dépendance définie dans package-lock.json

Github m'a donné cette erreur sur l'un de mes référentiels.

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 dépendance n'est pas définie dans notre fichier package.json. À ma connaissance, il n’est pas recommandé de supprimer le fichier package-lock.json et de le régénérer. Cependant, je ne vois pas d'autre moyen de résoudre ce problème. Si je rejette cette vulnérabilité de sécurité, elle réapparaîtra quelques jours plus tard. Des idées? Merci!

63
Kaito

Nouveau: maintenant, avec npm @ 6, vous pouvez directement lancer

npm audit fix

Ancienne réponse:

Vous devez essayer d’identifier le nom du paquet problématique, puis exécuter

npm install package-name

remplacer le nom du paquet, évidemment.

Cela installera la dernière version du paquet et très souvent, la dernière version corrigera le problème de sécurité. Si vous avez une contrainte sur la version (par exemple: 1.2), vous pouvez toujours essayer de:

npm install package-name@^1.2

et la dernière version corrigée sera installée

36
Jo-Go

Pour résoudre ceci:

Solution1: Recherchez d'abord la vulnérabilité: À l'aide de votre terminal: cd dans votre projet, puis exécutez "npm ls hoek"

Et enfin: npm install bcrypt @ latest

Ensuite, poussez le projet mis à jour vers git (c.-à-d. Effectuez une nouvelle validation).

Solution 2:

si la première option/solution ne résout pas le problème.Changez la version manuellement dans votre package-lock.json. Changez votre version manuellement de 2.16.3 à 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

Puis mettez à jour votre projet sur GitHub (commit/Push). Assurez-vous simplement que chaque occurrence de version de hoek dans votre version de package-lock.json est modifiée en 4.2.1.

Alternativement, si vous pouvez trouver un moyen de changer la version de hoek/update hoek à l’aide de npm, cela simplifiera considérablement les choses. (Quelque chose comme: npm update @ hoek..version) .. ou désinstallez le dépendance puis réinstallez-le en utilisant bower ou npm.

6
RileyManda

À ma connaissance, il n’est pas recommandé de supprimer le fichier package-lock.json et de le régénérer.

Pourtant, c'est ce qui se fait habituellement dans ce cas.
Voir par exemple angular/angular-cli issue 8534 , qui est résolu par PR 8535 .
Cela dirige un projet dépendant tel que frees-io/freestyle-opscenter-webclient à met à jour son _package-lock.json_: PR 31 .

3
VonC

Le moyen le plus simple/le plus simple de résoudre ce problème est:

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

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

2
adrianmc

vulnérabilités de sécurité connues et doivent être mises à jour.

Depuis le 23 mai 2019, vous avez maintenant " Dependabot: Correctifs de sécurité automatisés "

Grâce à l’intégration de Dependabot, nous avons publié des correctifs de sécurité automatisés en version bêta publique.

Les correctifs de sécurité automatisés sont des demandes d'extraction générées par GitHub pour corriger des vulnérabilités de sécurité.
Ils automatisent une partie fastidieuse du flux de travail et permettent aux développeurs de maintenir facilement leurs dépendances à jour.

Voir plus à " Configuration de correctifs de sécurité automatisés "

Remarque: les correctifs de sécurité automatiques sont disponibles en version bêta et sont sujets à modification.

Vous pouvez activer les correctifs de sécurité automatiques pour tout référentiel utilisant des alertes de sécurité et le graphique de dépendance.
Nous activerons automatiquement les correctifs de sécurité automatiques dans chaque référentiel qui utilise des alertes de sécurité et le graphique de dépendance au cours des prochains mois, à compter de mai 2019.

1
VonC

J'avais le même problème avec une vulnérabilité de sécurité lodash, dans un projet que je construisais avec du fil. Github a signalé ces problèmes de sécurité.

J'ai essayé la réponse de @rileymanda ci-dessus, en utilisant un terminal: cd dans projet, puis exécutez npm ls lodash.

Ceci a révélé que dans mon cas, l'erreur était dans réagissait les scripts . Google rapide pour les problèmes avec react-scripts et lodash a découvert qu'il s'agissait d'un problème connu.

J'ai essayé diverses choses à réparer avec de la laine - toutes sans succès. npm ls lodash montrait toujours la version vulnérable de lodash utilisée.

Ayant lu blog de Matt Turnbull sur les améliorations apportées à npm je suis passé du fil à npm. (Supprimez yarn.lock, supprimez ./node_modules. Exécutez npm install.)). npm ls lodash montrait maintenant les dernières versions de dépendance utilisées - hourra! Engagé à github, et il était maintenant heureux que la vulnérabilité ait disparu.

Il semble que Yarn ait du mal à résoudre ces problèmes (ou ce n’est pas son intention).

Si vous rencontrez ce problème lors de la construction avec du fil, essayez de revenir à npm!

1
JohnSk
  1. Sur GitHub, accédez à la page principale du référentiel.
  2. Sous le nom de votre référentiel, cliquez sur Sécurité.
  3. Cliquez sur l'alerte que vous souhaitez voir.
  4. Consultez les détails de la vulnérabilité et, le cas échéant, la demande d'extraction contenant le correctif de sécurité automatisé.
  5. Eventuellement, s'il n'existe pas encore de correctif de sécurité automatisé pour l'alerte, cliquez sur Créer un correctif de sécurité automatisé pour créer une demande d'extraction permettant de résoudre la vulnérabilité.
  6. Lorsque vous êtes prêt à mettre à jour votre dépendance et à résoudre la vulnérabilité, fusionnez la demande d'extraction.

Voir les détails

0
MD SHAYON

essayez npm audit fix, il préviendra de nombreux avertissements

alors npm i [package.name]@xxx

par exemple:

"dependencies": {
  "lodash": ">=4.17.13"
}

npm i [email protected]

0
Jun Du

Cela fonctionne pour moi. désinstallez toutes vos dépendances et réinstallez-le

Par exemple

à partir de package.json voir la liste de vos dépendances

{
"name": "ebook-saler",
  "version": "1.0.0",
  "description": "App for selling ebooks",
  "main": "app.js",
  "scripts": {
    "start": "node app.js"
  },
  "author": "Md Shayon",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "express-handlebars": "^3.1.0",
    "hoek": "^6.1.3",
    "stripe": "^7.5.0"
  }
}

Suivez la commande pour cela

npm uninstall body-parser express express-handlebars hoek stripe
npm install body-parser express express-handlebars hoek stripe
git commit -m "updated"
git Push
0
MD SHAYON