ブログ一覧に戻る
脆弱性2026年10月18日4分で読めます

CVEは到達可能でも、悪用可能とは限らない――リーチャビリティ分析と悪用可能性分析の違い

Your CVE is reachable. But is it exploitable?

脆弱性CVE

この記事のポイント

【なぜ重要か】 SCAツールによるリーチャビリティ分析(脆弱な関数がコードから呼び出されるか否かの確認)は今や標準的な機能だが、「到達可能=悪用可能」ではない。攻撃者が実際に攻撃を成立させるには、入力の制御可否・設定・権限・デプロイ環境など複数の条件を同時に満たす必要があり、それを確認しないまま一律にパッチ対応を進めると、無駄な工数とノイズが生じる。悪用可能性(Exploitability)の分析...

【なぜ重要か】 SCAツールによるリーチャビリティ分析(脆弱な関数がコードから呼び出されるか否かの確認)は今や標準的な機能だが、「到達可能=悪用可能」ではない。攻撃者が実際に攻撃を成立させるには、入力の制御可否・設定・権限・デプロイ環境など複数の条件を同時に満たす必要があり、それを確認しないまま一律にパッチ対応を進めると、無駄な工数とノイズが生じる。悪用可能性(Exploitability)の分析を加えることで、本当に対処すべき脆弱性に集中できる。

【ポイント】

  • リーチャビリティ分析の限界:依存パッケージ内の脆弱な関数がコードから呼び出されるかを確認する分析は有効だが、「攻撃者が悪用条件を満たせるか」までは判定できない。CISA のVEXも「脆弱なコードが実行パスにない」と「攻撃者がコードを制御できない」を別の理由として区別している。
  • 悪用可能性を左右する条件:攻撃者による入力の制御可否、必要な設定やフィーチャーフラグの有無、認証・権限要件、ユーザー操作の必要性、デプロイ環境、既存の緩和策(WAF・入力バリデーション等)のいずれか一つでも欠ければ、攻撃は成立しない。
  • lodash CVE-2021-23337 での具体例:同じ脆弱バージョンの lodash を使う3つのアプリを比較すると、①_.templateを呼ばないアプリは「到達不可」として除外、②ハードコードされたオプションで_.templateを呼ぶアプリは「到達可能だが悪用不可」に格下げ、③リクエストデータをテンプレートオプションに展開するアプリは「到達可能かつ悪用可能」として高優先度を維持——と判定が分かれる。
  • 悪用可能性の判定は変化する:コードの変更、新たな入力パス、設定変更、ベースイメージの更新によって判定が覆り得る。また、アプリ内の別箇所にあるプロトタイプ汚染バグが、一見「悪用不可」と判定された_.templateの呼び出しを悪用可能にする場合もある。
  • Aikido の CVE Exploitability Analysis:リポジトリのコードに加え、Dockerfile・ベースイメージ・ディストリビューション・コンテナの実行状況を含むコンテナコンテキストを読み込み、各CVEが実環境で悪用可能かを自動判定する。判定結果には文章による根拠が付記され、レビュアーが承認したうえで「無視・スヌーズ・重要度の引き下げ・引き上げ」のアクションを実行できる。

【まとめ】 CVSSスコアやリーチャビリティだけに頼った優先度付けは、対応すべき脆弱性を見誤るリスクがある。悪用可能性分析を組み合わせることで、実際に攻撃が成立するCVEのみに対応を絞り込める。Aikido の CVE Exploitability Analysis をトリアージ設定から有効化し、コードとコンテナ環境を踏まえた精度の高い判定を活用することを検討してほしい。

原文を読む

Aikido Security Blog

英語で詳細な技術情報を確認

原文を読む

コメント・質問

この記事についてのコメントや質問を投稿できます

コメントを投稿するにはログインが必要です

ログインする

読み込み中...