NPM-AUDIT finden zu hohe Schwachstellen. Was soll ich tun?


13

npm audit laufe auf mein Projekt und habe mir das besorgt

High Command Injection-
Abhängigkeit von @ angle-devkit / build-angle [dev]

Pfad @ angle-devkit / build-angle> @ ngtools / webpack> tree-kill

Weitere Informationen unter https://npmjs.com/advisories/1432

High Command Injection

Paket Baum töten

Gepatcht in> = 1.2.2

Abhängigkeit von @ angle-devkit / build-angle [dev]

Path @ angle-devkit / build-angle> tree-kill

Weitere Informationen unter https://npmjs.com/advisories/1432

Tree-Kill muss aktualisiert werden, ist aber eine Dep von eckigen, nicht von mir. Na und? Müssen Sie warten, bis das Angular-Team seine eigene package.json auf eine neuere Version von Tree-Kill aktualisiert?

Antworten:


11

Sie können dies beheben, ohne auf eine neue Version des Pakets zu warten @angular-devkit/build-angular.

Führen Sie einfach die folgenden Schritte aus:

  1. Aktualisieren Sie Ihre package.jsonDatei, indem Sie einen resolutionsAbschnitt mit der richtigen Version des Pakets hinzufügen tree-kill:
"resolutions": {
  "tree-kill": "1.2.2"
}
  1. Aktualisieren Sie Ihren package-lock.jsonBefehl, indem Sie Folgendes ausführen:
npx npm-force-resolutions
  1. Installieren Sie NPM-Pakete in Ihrem Projekt neu:
rm -r node_modules
npm install

Führen Sie aus npm audit, um zu überprüfen, ob Ihr Projekt dieses Problem nicht mehr aufweist. Und vergessen Sie nicht, geänderte Dateien package.jsonund festzuschreiben package-lock.json.

Weitere Informationen zu NPM Force Resolutions .


11

Ich hatte heute das gleiche Problem und habe es behoben durch:

  1. Löschen Sie das Tree-Kill-Paket aus dem Ordner node_modules.
  2. Löschen Sie die Datei package-lock.json.
  3. Wechseln Sie in den Ordner @ angle-devkit / build-angle im Ordner node_modules und bearbeiten Sie die Datei package.json. Ändern Sie die Tree-Kill-Version von 1.2.1 auf 1.2.2
  4. Gehen Sie zum Ordner @ ngtools / webpack im Ordner node_modules und machen Sie dasselbe wie in Schritt 3.

Führen Sie danach die npm-Installation aus.


1
Also muss ich durch diesen Fix den Ordner node_modules mit Git behalten, oder?
Loki

Ich bin nicht sicher, ob ich Ihre Frage richtig gestellt habe, aber Sie müssen die neuen Änderungen nach der neuen Installation übernehmen.
Saleem

1
Das manuelle Bearbeiten Ihrer Abhängigkeiten ist keine gute Idee, da eine Neuinstallation des Projekts das Problem darstellt
Nemus

2

Ich hatte gerade auch dieses Problem und nach einigen Recherchen fand ich etwas:

NPM löst Fehler bei "Audit Fix" aus - Konfigurierte Registrierung wird nicht unterstützt

Natürlich geht es um ein anderes Problem, aber durch die Anpassung der dort gegebenen Lösung wurde mein Problem gelöst.

Damit :

  • Löschen Sie den Ordner node_modules von tree-kill
  • Bearbeiten Sie die Datei package-lock.json wie fertig, jedoch mit dem Tree-Kill-Modul.
  • Vergessen Sie nicht, am Ende npm install auszuführen

Ich hoffe ich war klar genug.


Wie könnte ich die package-lock.json im zweiten Schritt bearbeiten, wenn sie beim Löschen des Ordners node_modules von tree-kill in Schritt 1 gelöscht werden sollte?
Mauricio Martinez


0
  1. Entfernen Sie das Tree-Kill-Paket aus dem Ordner
    node_modules und löschen Sie die Datei package-lock.json.

  2. Suchen Sie den Ordner @ angle-devkit / build-angle im Ordner node_modules und bearbeiten Sie die Datei package.json. Ändern Sie die Tree-Kill-Version von 1.2.1 in 1.2.2.
    Suchen Sie @ ngtools / webpack im Ordner node_modules und bearbeiten Sie die Datei package.json. Ändern Sie die Tree-Kill-Version von 1.2.1 auf 1.2.2

  3. Führen Sie die npm-Installation aus.

0

Fügen Sie den folgenden Code zu package.json hinzu

"resolutions": {
"tree-kill":"1.2.2"
}

Entfernen Sie alle Knotenmodule:

rm -r node_modules

Aktualisieren Sie package-lock.json für die neue Version 1.2.2 wie folgt:

npx npm-force-resolutions

Installieren Sie nun Knotenmodule:

npm install

Das funktioniert bei mir.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.