書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

npm install後のhigh severity vulnerability / Prototype Pollutionの原因と解決法

LaravelとVue連携

npm installを行ったところ、【high severity vulnerability】というメッセージが表示。

どうやら【Prototype Pollution】の危険性があるとのことでした。

実際に解決した方法と、Prototype Pollutionについて英語記事を翻訳して解説していきます。

npm install後のhigh severity vulnerabilityの解決法

まずエラーがでた状況について。

わたしはLaravel8を使っていますが、vue.jsを使うためにnpm installを実行しました。

npm install

すると、下記の警告が。

found 1 high severity vulnerabilityrun `npm audit fix` to fix them, or `npm audit` for details

 

英語の意味「かなり深刻な脆弱性を発見したよ。」

「修正するには npm audit fix を実行してね。詳細は npm audit を見てね。」

 

じゅんこ
じゅんこ

highが赤文字になっていて、不穏な感じ・・・

とりあえず npm audit を実行。

npm audit

すると、次のように詳細が表示されました。

High Prototype Pollution

Package object-path

Dependency of resolve-url-loader [dev]

Path resolve-url-loader > adjust-sourcemap-loader > object-path

More info https://npmjs.com/advisories/1573

一番上の【Prototype Pollution】が原因っぽいですね。

とりあえず、「npm audit fix」を行って修正を試みることにします。

npm audit fix

すると、結構あっさり修正できた模様。

もういちど npm auditを実行すると、次のような結果になりました。

found 0 vulnerabilities

「脆弱性はゼロだったよ」とのこと。

じゅんこ
じゅんこ

とりあえず、良かった。

High Prototype Pollutionの詳細と対策

解決したものの、結局これは何だったんだ。

【Prototype Pollution】でググってみると、こんな不穏なタイトルの記事が出てきました。

Prototype pollution: The dangerous and underrated vulnerability impacting JavaScript applications
「プロトタイプ汚染:JavaScriptに影響を与えるキケンで過小評価されている脆弱性」

Prototype PollutionはJavaScriptの人気ライブラリのセキュリティホールを狙った攻撃。

以前からあるものの、2019年前半に物議を醸しだしていたようです。

最悪の場合、Webアプリケーションのクラッシュに至ることも。

Prototype Pollutionはどう攻撃されるか

インスタンスの __proto__ プロパティからアクセスされます。

下記のように__proto__ が含まれている場合、マージをしないようにすればOK。

var merge = function(target, source) {
    for(var attr in source) {
        if(attr === "__proto__") continue;

Prototype Pollutionは npm パッケージを通じて入ってくるか

jQuery, lodash, hoekなど、有名なライブラリはプロトタイプ汚染に対処するため、更新されています。

また今回のように【npm-audit】を実施すれば、事前にチェックでき、ほぼ修正も可能です。

修正に時間がかかったり、更新するとプロジェクト全体に影響がある場合などは、英語ですが、下記サイトが役立つようです。

Just a moment...

まとめ

今回のまとめLow vulnerabilityの警告がでたら npm audit で原因究明する

High Prototype Pollution は npm audit fix で修正を試みる

これで大体なおるが、この手の問題はまた起こる危険性がある

JavaScriptを使う上では、こういったセキュリティホールの問題は避けて通れないようです。

常に警戒をしておかなきゃ、ということですね。

 

★今回お世話になったサイトはこちら★

node_modules “What is prototype pollution and why is it such a big deal? “

The Daily Swig “Prototype pollution: The dangerous and underrated vulnerability impacting JavaScript applications“

 

 

LaravelとVue連携Laravel・PHP豆知識・トラブル対策

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる
 

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
シェアする
Twitter始めました。

コメント

タイトルとURLをコピーしました