web-dev-qa-db-ja.com

推奨コマンドを実行してもNPMの脆弱性は修正されません

プロジェクトに新しいNPMモジュールをインストールするたびに、次のエラーが表示されます。

[!] 40 vulnerabilities found - Packages audited: 5840 (0 dev, 299 optional)
    Severity: 8 Low | 24 Moderate | 8 High

それでnpm auditを実行すると、次のような40の脆弱性のそれぞれの詳細が表示されます。

# Run  npm install [email protected]  to resolve 22 vulnerabilities
SEMVER WARNING: Recommended action is a potentially breaking change
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Moderate      │ Prototype pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ hoek                                                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ npm                                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ npm > libcipm > npm-lifecycle > node-gyp > request > hawk >  │
│               │ boom > hoek                                                  │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/566                       │
└───────────────┴──────────────────────────────────────────────────────────────┘

またはこれ:

# Run  npm update fsevents --depth 2  to resolve 3 vulnerabilities
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low           │ Regular Expression Denial of Service                         │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ debug                                                        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ chokidar                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ chokidar > fsevents > node-pre-gyp > tar-pack > debug        │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://nodesecurity.io/advisories/534                       │
└───────────────┴──────────────────────────────────────────────────────────────┘

npm install [email protected]を実行します(すでに6.0.1があります)、その後npm update fsevents --depth 2を実行しますが、その後npm auditを再実行しても何も変更されず、同じ40の脆弱性とそれらの本当に怖いです。私は何をすべきか ?

18
Ki Jéy

これはMacOSで私のために働いた:

  • NPMを新しい6.1.0に更新します。 「npm audit fix」コマンド 詳細はこちら を導入します。
  • 「npm audit fix」を実行します。

「npm audit」を再度実行すると、残っている脆弱性は「手動レビュー」の問題のみになります。

6
Flo

これは、オプションの依存関係の処理に関連するnpm 6.0.1のバグのようです: https://github.com/npm/npm/issues/20577

2
Josh Rickert

ソース: https://github.com/npm/npm/issues/20675fseventsの問題の1つは、

fseventsはWindowsにインストールできないため、macOSマシンで更新する必要があります。

Exhnozoaaの解決策を見たので、それは少し奇妙です。

次の手順でWindowsでこれを回避できました。

  1. エディターでpackage-lock.jsonを開きます。
  2. "fsevents"を検索します。 "dependencies"の直下にあるオブジェクトを見つけます。
  3. "fsevents"(キーとオブジェクト全体)を削除します。
  4. ターミナルから、npm installを実行します。

これにより、他のパッケージと互換性のある最新バージョンでそのセクションが再生成されます。私はこれがそれを修正する良い方法だとは本当に思いませんが、それは私のために働いたものです。

0
knod