脱初心者備忘録

npm installでhigh severity vulnerabilitiesが出るときの対処

これが出ても、先に進めないわけではないので、エラーを無視できるといえばできるのですが、「high severity vulnerabilities」って、重大度の高い脆弱性なわけです。
コードを書く人なら無視できませんよね。
てなことで、必死に戦った対処法を備忘録します。

とにかく内容を調べろ

何が重大度の高い脆弱性なのか、とにかく調べます。
おそらく、npmのログにも書かれていると思うのですが、とにかく詳細を見ます。

npm audit

すると脆弱性の状態が詳細に記述されます。

Severity:highでPrototype Pollution in asyncと書かれています。
その下には、Prototype Pollution in asyncに依存している関係のモジュールが書かれています。

とりあえず、自動修復を試みます。うまくいけばこれで修復されます。
npm audit fix

ん~なんかしたかな~ってくらい、何もできてません。
あかんやつです。

asyncが悪いんでしょ?リンク書いてあるよね?そこ見よう。ってことで、とりあえず書かれてるリンクを参照する。

処理中って処理してないんかい!ダメじゃん。
ん~でもよく見ると、バージョンが、3.2.2以下って書いてある。

今の最新は?
https://caolan.github.io/async/

上記のサイトで確認するとV3.2.3らしい。じゃアップデートすりゃいいやん。

問題のモジュールをアップデートする

とりあえず、問題のあるモジュールは特定されたので、アップデートします。

npm i async

これで最新にアップデートされた。3.2.2以上もクリアしてる!
じゃいけるかな?
npm install

だめじゃん。。。なんで同じエラー。

あ、と気づく。

package-lock.jsonにインストールするモジュール書かれているよね?と。

asyncで調べる。

うーん、おんなじ。ちゃんと3.2.3になってる。

なんでや。

ってここから、いろいろやり始める。node.jsのアップデート、npmのインストール・アップデート。
node_modulesフォルダの削除。
何も変わらず。

ログを見ろ!依存関係を忘れるな

もう一回、package-lock.jsonをなめるように見る。さっきログに書かれてた、依存関係も見る。

あっ

あ、、、見っけ。

てか、依存関係のとこに、もう1こ、さっきのasync、いるっ。

しかもバージョン、3.2.2より低いやつ。

ここか~悪さしてたの。
この数字を3.2.3に直します。
npm install

キターーーーーーー!

無事に完了です。お疲れ様でした。