FlawOpen

flawopen.com/CWE と CVE

CWE と CVE:何が違うのか

リファレンスページ
手短に言うと

CWE は弱点の種類を示し、CVE は脆弱性の記録を識別します。1 種類の弱点が多数の CVE に現れることも、1 件の CVE に関連する弱点の連鎖が含まれることもあります。CWE の対応付けがない CVE レコードもあります。

具体的なイメージの持ち方

CWE は弱点を分類し、CVE ID は個別の脆弱性レコードを識別します。両者は一対一ではありません。1 つの弱点が多数の CVE の原因となる場合があり、1 件の CVE が弱点の連鎖を含む場合もあります。MITRE の CWE-126 エントリは Heartbleed(CVE-2014-0160)を例に挙げています。長さの不整合な処理(CWE-130)により、バッファ範囲外の読み取り(CWE-126)が可能になりました。CVE は 1 件の脆弱性レコードのままで、2 つの CWE は障害連鎖の異なる部分を表します。

本サイトでの両者の関係

flawopen.com のすべての ExplainerPage は CWE 単位で構成されている

脆弱性クラス × 言語のマトリクス(Python の SQL インジェクション、Java の XSS など)は CWE カテゴリを軸に構成されています。特定製品の履歴ではなく、一般的なパターンとその回避方法を扱います。

CVE の解説は、別立てで選択的なレイヤー

特定の CVE が十分に重大で広く関連し、取り上げる価値があるときは、それ自身の解説が用意され、その CWE クラスへリンクします。ただしすべての CVE に用意されるわけではありません。多くは単一の製品/バージョンに限定されるからです。

FAQ

CWE と CVE は誰が管理しているのか

MITRE は CWE リストを管理しています。CWE と CVE は相補的な役割を持つ別々のプログラムで、CVE レコードは CVE Numbering Authority(CNA)が作成します。NVD は CVE データを利用し、独自の CWE 対応付けなどを追加する NIST の別プログラムです。NVD の対応付けが CNA の元の分類と同一とは限りません。

すべての CVE に CWE はあるのか

いいえ。CVE レコードに具体的な CWE 対応付けがないことがあります。たとえば、CVE-2021-27823 では NVD が NVD-CWE-noinfo(「情報不足」)と表示しています。NVD は CNA が提供した CWE 情報と独自の追加情報を併記する場合があります。CWE ラベルは分類メタデータとして扱い、根本原因や連鎖を完全に示している証明とはみなさないでください。

参考文献

関連項目 Mass Assignment:リスクと安全なフィールド許可リスト Serverless の状態漏えい:ユーザーデータをリクエストごとに分離 PHP == と Magic Hash の比較 Rust の unsafe ブロックはメモリ安全なのか? strncpy() は strcpy() より安全ですか?