Heute zeigt github folgenden Fehler in meinem Github-Repository:
Wir haben eine potenzielle Sicherheitslücke in einem Ihrer .__ gefunden. Abhängigkeiten. Eine in ./package-lock.json definierte Abhängigkeit hat Sicherheitslücken und sollten aktualisiert werden.
Beim Klicken auf die Schaltfläche "Anfällige Abhängigkeit überprüfen" wurde die folgende Meldung angezeigt:
hoek Knotenmodul vor 5.0.3 leidet an einer Modifikation von MAID-Sicherheitsanfälligkeit durch "Zusammenführen"
Bis gestern zeigte es keinen solchen Fehler. Ich habe seit mehr als 5 Tagen keinen Push auf dieses Repository durchgeführt. Irgendeine Idee, warum es passiert.
Ich habe verwendet: rm package-lock.json
&& npm update && npm install
. Für mich wurde diese hoek
auf 4.2.1
aktualisiert, die auch den Fix enthält ( per this comment .)
Edit: In einer anderen App habe ich rm package-lock.json
und entweder npm i hoek && npm up && npm i && npm un hoek
oder npm i hoek && npm un hoek && npm up && npm i
(kann sich nicht an die Reihenfolge erinnern) ausgeführt werden, wobei mit diesem Kommentar (von JamesSingleton) ausgerichtet ist.
(rm package-lock.json
ist nur wenn es existiert.)
Edit: In einer dritten App habe ich npm outdated
überprüft und festgestellt, dass ich react-scripts-ts
von 2.13.0
auf 2.15.1
aktualisieren musste. Dazu habe ich den package.json
manuell aktualisiert und dann einfach npm i
ausgeführt. Sobald dies erledigt ist, wurde hoek
auf 4.2.1.
aktualisiert (insbesondere für diese Holdout/Primärkomponente).
Edit: Meine Lösung für eine Zurb Foundation 6 Site:
Ich habe alle meine Pakete mit npm outdated
auf ihre Hauptversionen aktualisiert. Ich lief dann:
npm i [email protected] --save && npm up hoek
npm i boom hawk sntp uncss gulp-uncss --save && npm up boom hawk sntp uncss gulp-uncss && npm un boom hawk sntp gulp-uncss uncss --save
Es gab zwei Holdouts; browser-sync : 2.23.7
und node-sass : 4.9.0
, jeweils in der neuesten Version. Egal: Die GitHub-Warnung wurde nach dem Commit behoben.
Ich habe npm update hoek && npm install hoek verwendet und das Paket wurde auf 5.0.3 aktualisiert.
Die Schwachstellenwarnung verschwand danach aus meinem Github Repo.
Keines der oben genannten Dinge funktionierte für mich. Meine Hoek-Abhängigkeit war tief in den Teilbäumen. Ich habe zuerst npm ls hoek
gemacht und so etwas bekommen:
├── [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ └─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] deduped
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected] deduped
│ ├── [email protected]
│ └─┬ [email protected]
│ └── [email protected] deduped
└─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ └── [email protected] deduped
├── [email protected]
└─┬ [email protected]
└── [email protected] deduped
Ich habe dann gesehen, dass das, was wirklich aktualisiert werden muss, watson-developer-cloud
ist, da dies die Verwendung von hoek auf der obersten Ebene ist.
Ich habe dann npm install [email protected]
gemacht und das hat es gelöst.
npm update
sollte nur funktionieren, wenn das verwundbare Paket als direkte Abhängigkeit des Projekts deklariert ist. In der Regel (wie im Fall von hoek
) liegen vulnerabilities in den Paketen, die in Ihrem Unterabhängigkeits-Baum ablegen.
Da in meinem Fall ich beschloss, nicht alle Abhängigkeiten meines Projekts zu aktualisieren (durch Löschen und Neuerstellen der gesamten package-lock.json
-Datei), habe ich mich für den folgenden (und natürlich zeitaufwendigeren) Ansatz entschieden:
package-lock.json
Mögen:
npm r package-1 package-2 && npm i [email protected]^1.2.3 [email protected]^1.2.3
Dieser Ansatz funktioniert nur, wenn das verwundbare Paket behoben und freigegeben wurde und die konsumierenden Pakete das verwundbare Paket mit einem lose Versionsnummer für Patch- oder Nebenversionen importieren.
Führen Sie in Ihrem Projekt npm install [email protected]
oder npm install [email protected]
aus.
Dadurch wird die erforderliche neueste Version von hoek in package.json-Abhängigkeiten installiert, die über der hoek-Version in package-lock.json überschreiben.
Eine Lösung gefunden hier .
Geben Sie im Allgemeinen in git bash cd
in Ihren Projektordner die folgenden Codes ein:
npm i hoek
npm uninstall hoek
npm update
npm install
dann
git add .
git commit -m 'update-hoek'
git Push Origin master
Überprüfen Sie nun Ihre GitHub-Projektseite erneut. Die Warnung sollte verschwinden.
Grüße.
Ich habe alle oben genannten Schritte ausprobiert, aber nicht für mich gearbeitet, also habe ich die Ursache meiner Ursache untersucht.
Ich lief npm ls hoek
was mir gab:
├─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ └── [email protected]
└── [email protected]
Ich habe die Version meiner hawk
gegenüber der auf npm hawk festgestellt, also habe ich npm i hawk --save
ausgeführt. Danach habe ich wieder meine normalen Git-Befehle ausgeführt:
git add .
git commit -m 'whatever_message'
git Push
Und zurück zu Github und meine Sicherheitslücke wurde behoben.
Ja, das Paket CVE-2018-3728 ist anfällig. Die Versionen von hoek vor 4.2.1 und 5.0.3 sind anfällig für Prototypverschmutzung. Die betroffenen Versionen von hoek sind bis Version 5.0.2. Die Aktualisierung erfolgt auf Version 4.2.1, 5.0.3 oder höher . Für weitere Informationen können Sie die Fix-Pull-Anforderung hier anzeigen: https://github.com/hapijs/hoek/pull/231/commits/5aed1a8c4a3d55722d1c799f2368857bf418d6df