人生なんて暇つぶし

楽しく働きたいエンジニアの雑記ブログ。Web系がメイン。たまにAI、ブロックチェーン。

GitHubから通知されたセキュリティ上の脆弱性を解決する

angular-cliでプロジェクトを作成し、とりあえずGitHubにpushしとくか、とpushしたらGitHubからメールが来ました。

f:id:maroemon58:20180630142605p:plain

GitHubにもアラートが表示されています。 f:id:maroemon58:20180630142656p:plain

One of your dependencies may have a security vulnerability
依存関係の1つにセキュリティ上の脆弱性が存在する可能性があります。

とのことです。このままにしとくのも気持ち悪いので解決手段を探ってみます。

環境

$ ng -v
Angular CLI: 6.0.8
Node: 10.0.0
OS: darwin x64
Angular: 6.0.7

原因は?

メッセージを翻訳してみるとpackage-lock.jsonで定義されている依存関係には既知のセキュリティ上の脆弱性があり、更新する必要があります。とのことです。

具体的にはこれですね。

Known moderate severity security vulnerability detected in hoek < 4.2.1 defined in package-lock.json. package-lock.json update suggested: hoek ~> 4.2.1.

hoekが4.2.1未満であることがいけないようです。hoekに依存しているパッケージを見てみましょう。

$ find . -name 'package.json' -exec egrep -H '^\s*"hoek"' {} \;
./node_modules/boom/package.json:    "hoek": "2.x.x"
./node_modules/hawk/package.json:    "hoek": "2.x.x",
./node_modules/sntp/package.json:    "hoek": "2.x.x"

2.x.xを指定していますね。これが原因ぽいのでこの3つのパッケージをアップデートします。

$ npm i boom hawk sntp
$ find . -name 'package.json' -exec egrep -H '^\s*"hoek"' {} \;
./node_modules/boom/package.json:    "hoek": "5.x.x"
./node_modules/hawk/package.json:    "hoek": "5.x.x",
./node_modules/sntp/package.json:    "hoek": "5.x.x",

指定された4.2.1以上になりました。念の為、package-lock.jsonも確認しておくといいでしょう。

最後にcommitしてGitHubにpushします。アラートが消えているか確認してください。

まとめ

npm-check-updatesでアップデートするとイケると見ましたがダメでした(?)。npmについてまだまだ理解が足りないようなので、精進しなきゃいけないですね。ではまた。

twitter.com