質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Q&A

解決済

1回答

787閲覧

Angular 12.0.3 でnpmに脆弱性が生じる問題

Isyo

総合スコア11

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

0グッド

0クリップ

投稿2021/06/08 07:01

・困っていること
最近Angularを使い始めたのですが、

ng new project-name

として、Angularプロジェクトを作成した後、

npm audit

とすると、

found 37 vulnerabilities (36 moderate, 1 high) in 1323 scanned packages

と表示されます。
node_modulesの依存関係に脆弱性がある(?)的なメッセージだと思います。

何も手を加えずにこのような脆弱性が検出されるのは何故なのか、またどうすれば解決できるのか教えていただきたいです。

・試したこと

npm audit fix

としましたが、

fixed 0 of 37 vulnerabilities in 1323 scanned packages 37 vulnerabilities required manual review and could not be updated

と表示されて直らないようです。

・環境

Angular: ver 12.0.3
npm: ver 6.14.11

調べてもそれっぽいことが出てこずに困っています。助けてください…

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

### 結論

関係各所が今頑張って修正しているからしばし待て。

解説

何も手を加えずにこのような脆弱性が検出されるのは何故なのか

今回の場合はangularのコアモジュールについて、依存関係にあるモジュールのうち、

  • モジュール作成時には発見できていなかった脆弱性が後から発見されている
  • 最新バージョンでは修正されているが、指定の依存バージョンでは修正されていない

ことが主な原因であろうと思います。これはさらに子孫側のモジュールの依存関係でも同様です。

angularのコアモジュールと依存関係にあるモジュールも、自身が依存しているモジュールに脆弱性情報が発見されれば脆弱性が解消されたモジュールにバージョンを変えたりしますが、その際にメジャーバージョンを変更したりすると親のモジュールの方で新しいバージョンに切替できなくなったりします。
(大抵の場合、モジュールのバージョン指定が ^4.0.0 のように、メジャーバージョンで縛っているからです)
修正の際にメジャーバージョンを上げるかマイナーバージョンを上げるかは機能への影響度次第ですから。

我々利用者が取りうる選択肢としては

  • 依存するモジュールツリーの全てがちゃんと対応してくれるのを待つ
  • 脆弱性の内容をチェックしてリスク許容して使用する
  • 依存モジュールのプロジェクトにissueを投げて対応してもらう

事実、Angularのリポジトリでは対応に動いています。また、ほとんどの問題モジュールではissueが投げられています。
https://github.com/angular/angular-cli/issues/20795
脆弱性の大半が直接依存していないモジュールのものなので、自ずと依存モジュール側の対応待ちになっています。反応の鈍いモジュールもあるので全解決には時間がかりそうです。

全く解決されない可能性は低いと思いますし、現段階でcriticalなものは1つもないのでとりあえずこのまま開発は続けても良いのではないでしょうか。リリースまでに最低限highは解決されていないと怖いですが。

投稿2021/06/12 11:43

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Isyo

2021/06/13 03:14

moduleの依存とか脆弱性のことを考えたのは初めてだったので、勉強になりました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問