今日、githubは私のgithubリポジトリで次のエラーを表示しています:
依存関係の1つに潜在的なセキュリティ脆弱性が見つかりました。 ./package-lock.jsonで定義された依存関係には、セキュリティ上の脆弱性が確認されており、更新する必要があります。
[脆弱な依存関係の確認]ボタンをクリックすると、次のメッセージが表示されました。
5.0.3より前のhoekノードモジュールは、 'merge'を介した想定不変データ(MAID)の変更の脆弱性の影響を受けます
昨日まで、そのようなエラーは表示されていませんでした。 5日間以上、このリポジトリへのプッシュを行っていません。なぜそれが起こっているのか。
私は使用しました:rm package-lock.json
&& npm update && npm install
。私にとって、これはhoek
を4.2.1
に更新しました。これには修正も含まれています( このコメントごと 。)
編集:別のアプリで、rm package-lock.json
とnpm i hoek && npm up && npm i && npm un hoek
またはnpm i hoek && npm un hoek && npm up && npm i
のいずれかを実行しました(順序を思い出せません)、より整列されている このコメント(ジェームズシングルトンから) 。
(rm package-lock.json
は存在する場合のみです。)
編集:まだ3番目のアプリで、npm outdated
を確認し、react-scripts-ts
を2.13.0
からアップグレードする必要がありました。 2.15.1
に。このため、package.json
を手動で更新し、npm i
を実行しました。完了したら、hoek
を4.2.1.
に更新しました(具体的には、その1つのホールドアウト/プライマリコンポーネントを対象としています)。
編集:Zurb Foundation 6サイトの私のソリューション:
npm outdated
を使用して、すべてのパッケージをメジャーバージョンに更新しました。その後、私は走った:
npm i hoek@latest --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
2つのホールドアウトがありました。 browser-sync : 2.23.7
およびnode-sass : 4.9.0
、両方とも最新バージョン。関係ありません:GitHubの警告はコミット後に解決されました。
Npm update hoek && npm install hoekを使用し、パッケージを5.0.3に更新しました。
その後、私のgithubリポジトリから脆弱性アラートが消えました。
上記のどれも私にとってはうまくいきませんでした。私のhoek依存関係はサブツリーの奥深くにありました。最初にnpm ls hoek
そして次のようなものを得ました:
├── [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
その後、本当に更新する必要があるのはwatson-developer-cloud
それはトップレベルでhoekを使用するものだからです。
その後、npm install watson-developer-cloud@latest
そしてそれはそれを解決しました。
npm update
は動作するはずです脆弱なパッケージが直接プロジェクトの依存関係として宣言されている場合。しかし、通常は(hoek
の場合のように)脆弱性layを置くパッケージでdown in you sub-dependencies tree。
私の場合プロジェクトのすべての依存関係を更新しないことに決めた(package-lock.json
ファイル全体を削除および再構築することにより)、私は次の(そして、もちろん、もっと時間を消費)アプローチ:
package-lock.json
内の脆弱なパッケージののような:
npm r package-1 package-2 && npm i package-1@^1.2.3 package-2@^1.2.3
このアプローチは、脆弱なパッケージが修正およびリリースされ、消費パッケージが脆弱なパッケージを パッチまたはマイナーバージョンに公開されている緩いバージョン番号 でインポートする場合にのみ機能します。
実行してみてくださいnpm install [email protected]
またはnpm install hoek@5
プロジェクト内。
これにより、必要な最新バージョンのhoekがpackage.json依存関係にインストールされ、package-lock.jsonのhoekバージョンの上に上書きされます。
上記のすべてを試してみましたが、私には役に立たなかったので、私の根本的な原因を確認するために先に進みました。
npm ls hoek
私に与えた:
├─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ └─┬ [email protected]
│ └── [email protected]
└── [email protected]
hawk
のバージョンが npm hawk のバージョンと異なることに気付いたので、npm i hawk --save
。その後、再び通常のgitコマンドを実行しました。
git add .
git commit -m 'whatever_message'
git Push
そしてGithubに戻り、私のセキュリティ脆弱性が修正されました。
ソリューションが見つかりました こちら 。
基本的に、git bashでプロジェクトフォルダーのcd
に次のコードを入力します。
npm i hoek
npm uninstall hoek
npm update
npm install
それから
git add .
git commit -m 'update-hoek'
git Push Origin master
GitHubプロジェクトページをもう一度確認すると、警告が消えます。
よろしく。
はい、パッケージCVE-2018-3728は脆弱です。 4.2.1および5.0.3より前のバージョンのhoekは、プロトタイプ汚染に対して脆弱です。 hoekの影響を受けるバージョンは、バージョン5.0.2までです。修正は、バージョン4.2.1、5.0.3以降に更新します。詳細については、修正のプルリクエストをここで表示できます。 https://github.com/hapijs/hoek/pull/231/commits/5aed1a8c4a3d55722d1c799f2368857bf418d6df