1
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 1 year has passed since last update.

npm auditのwarningの定義について調べてみた

Last updated at Posted at 2023-06-11

こんにちは。@Esperna です。

背景

npm auditしたときに

12 vulnerabilities (6 moderate, 4 high, 2 critical)

みたいな出力が出ます。上記の moderate,high,criticalの定義がものすごく気になってます。
About audit reportsを見ると

重要度 推奨される対応
Critical 直ちに対処してください
High できるだけ早急に対処してください
Moderate 時間が許す限り対処してください
Low お任せします、必要に応じて対処してください

という記載があり、少なくともCriticalとHighは対処すべきとは思うのですが、
何を以て重要度を判断してるのかが分からず、それを分かってないことは危険ではないか。
例えばModerateの脆弱性が致命傷になることだってケースによってはあるはず。
あるいはそうならないケースもあるのではないかと思って、もう少し詳しく調べてみることにしました。

npm auditをよく見てみる

以下はとあるリポジトリでnpm auditを実行した時の結果の一部です。

% npm audit            
# npm audit report

ajv  <6.12.3
Severity: moderate
Prototype Pollution in Ajv - https://github.com/advisories/GHSA-v88g-cgmw-v5xw
fix available via `npm audit fix`
node_modules/table/node_modules/ajv
  table  3.7.10 - 4.0.2
  Depends on vulnerable versions of ajv
  node_modules/table

Prototype Pollutionという単語が出ているので調べてみると、
2018年の記事ですがNode.jsにおけるプロトタイプ汚染攻撃とは何かが目につきました。
オブジェクトリテラルの__proto__が Object.prototype と同一であることを利用して、
他のオブジェクトのプロパティを書き換えてしまうことができると。
moderateになってますが、普通に恐ろしいなと思いました。

それはさておき、重要なのが以下のGitHubのリンクで、
https://github.com/advisories/GHSA-v88g-cgmw-v5xw
を見てみると、CVE-2020-15366というIDがあります

CVEはCommon Vulnerabilities and Exposuresの略で、IPAによると
個別製品中の脆弱性を対象として、米国政府の支援を受けた非営利団体のMITRE社が採番している識別子だそうで、脆弱性検査ツールや脆弱性対策情報提供サービスの多くがCVEを利用しているそうです(*1)。

また、上記リンク先には

CVSS base metrics
Attack vector Network
Attack complexity High
Privileges required None
User interactionNone
Scope Unchanged
Confidentiality Low
Integrity Low
Availability Low

という記述がありますが、こちらはBase metricsというものがあり、

  • Au :攻撃前の認証要否 (Authentication):脆弱性を攻撃するために対象システムの認証が必要であるかどうか
  • C :機密性への影響 (情報漏えいの可能性、 Confidentiality Impact ):脆弱性を攻撃された際に、対象システム内の機密情報が漏えいする可能性
  • I :完全性への影響 (情報改ざんの可能性、 Integrity Impact ):脆弱性を攻撃された際に、対象システム内の情報が改ざんされる可能性
  • A :可用性への影響 (業務停止の可能性、 Availability Impact )

などの観点があるようです。Base metricsの計算式は正直よく分かりませんでした。

所感

  • 結局、npm auditのwarningの定義(というか計算式)はよく分からなかった
  • moderate, high, criticalだけでなくCVEの内容まで見たほうが良さそう
  • 下記はmoderateではなくhighではなかろうか
ajv  <6.12.3
Severity: moderate
Prototype Pollution in Ajv - https://github.com/advisories/GHSA-v88g-cgmw-v5xw

参考

1
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
1
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?