0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

あなたのnpmパッケージ、脆弱性の塊説。急いで最新にするよ!

Posted at

npm便利ですよね。

昨今フロントweb開発でNode.jsが登場しないことはないので、みなさんお使いかと思いますが、ちゃんとバージョン管理していますか?

私はしがないweb制作者ですが、npmパッケージなしでの開発はありえないです。

ただそういえばバージョン管理をしていないなと思い、現在バージョンと最新バージョンを比べてみることに。そしたら...

$ npm outdated
スクリーンショット 2020-05-22 20.25.53.png

微妙にパッケージが古くなってた...

npm-check-updatesをインストール

まずはpackage.jsonを最新バージョンにアップグレードしてくれるnpm-check-updatesをインストールします。

npm i npm-check-updates

そしたら、

ncu -u

すると、
スクリーンショット 2020-05-22 20.52.38.png

Run npm install to install new versions.

というメッセージが出たらOK、最後にパッケージをインストールします。

npm i

すると...

スクリーンショット 2020-05-22 20.54.41.png 何やら不穏なメッセージ。

660の脆弱性があるから直すためにnpm audit fixしろよな!

ということらしいです👀

ヒェ...
(npmの更新サボってた人はみんな数百レベルであると思われます)

とりあえずコマンドを実行します。脆弱性のある箇所を自動修正してくれるコマンドです。

npm audit fix

すると

スクリーンショット 2020-05-22 21.00.49.png

残り12個の脆弱性は手作業でオナシャス!!

ということらしい。

マジかい。

npm audit

で脆弱性一覧を出してみる。

スクリーンショット 2020-05-22 21.05.31.png

15個の脆弱性のうち、一個の危険性がhighになっていました(脆弱性から正規表現を使ったDoS攻撃を受ける可能性があるそうです

highのものを詳しくみてみます。

───────────────┬──────────────────────────────────────────────────────────────┐
│ High          │ Denial of Service                                            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ http-proxy                                                   │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ >=1.18.1                                                     │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ browser-sync [dev]                                           │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ browser-sync > http-proxy                                    │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://npmjs.com/advisories/1486                            │
└───────────────┴──────────────────────────────────────────────────────────────┘

browser-syncが依存している、http-proxyに問題があるそう。なんぞこれ...?

調べてみると、執筆時点5日前にアップデートが出ており、最新版にする必要がありそうです。

とりあえず

$ npm install http-proxy

で最新版をダウンロードし、再度脆弱性のある箇所を自動修正してくれるコマンド↓

npm audit fix

すると...

スクリーンショット 2020-05-22 21.37.11.png

fixed 9 of 13 vulnerabilities in 1275 scanned packages
  4 vulnerabilities required manual review and could not be updated

high消えたし、4つまで減らせたよかった!!

ぬわ〜ん疲れたも〜ん!!

結論 npmは定期的にお手入れせよ

バージョンは古くなってるし、脆弱性はあるし、多分自動化できるんだろうけど弱弱エンジニアなので、これから調べてみます。

みんなもnpmパッケージのバージョン管理、やろう!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?