用語辞典
CVE とは — 脆弱性に付く“共通の背番号”のしくみ
CVE(Common Vulnerabilities and Exposures)は、世界中で見つかった脆弱性に一意の番号(例 CVE-2025-12345)を付ける共通の台帳です。同じ穴を誰もが同じ名前で呼べるようにする仕組みで、対策の出発点になります。番号の読み方、CVE・CVSS・KEVの役割の違い、採番から修正までの流れ、そして個人開発者が現実的に追いかける方法(機械監視)を、図と表でやさしく解説します。
「CVE-2021-44228」「CVE-2017-5638」——大きな事故のニュースで必ず出てくる、あの番号の正体です。仕組みと、個人開発者が現実的に追う方法まで、ゼロから解説します。
番号の読み方
CVE番号は3つのパーツでできています。番号そのものに深刻度の意味はありません(深刻度は別物)。
なぜ必要か
脆弱性は毎日大量に見つかります。もし呼び名がバラバラだと、「あなたの言うその穴」と「私が直したこの穴」が同じものか分かりません。CVEという共通IDがあることで、ニュース・修正パッチ・スキャナ・データベースが同じ脆弱性を確実に指し示せるようになります。これが対策の出発点です。
CVE・CVSS・KEV — 役割を混同しない
この3つはよく一緒に出てきますが、答える問いが違います。優先順位づけには3つとも使います。
| 用語 | 答える問い | 例 |
|---|---|---|
| CVE | どの脆弱性か(名前) | CVE-2021-44228(Log4Shell) |
| CVSS | どれくらい深刻か(0〜10) | 10.0(最悪クラス) |
| KEV | 実際に悪用されているか | 悪用観測リストに掲載=最優先 |
CVSSが高い≠最優先、とは限らない
スコアは「最悪条件での理論値」です。実務では KEV(今まさに悪用されているか) と 自分がその機能を使っているか を併せて判断します。CVSS 10.0でも未使用なら影響は小さく、中スコアでも悪用中なら最優先です。
採番から修正までの流れ
CVEは「見つかったら即公開」ではなく、調整を経て公開されます。ざっくりこの流れです。
発見・報告
予約(Reserved)
修正と公開(Published)
悪用観測(KEV化)
個人開発者の現実的な追い方
CVEを人力で全部追うのは不可能で、その見落としがそのまま事故になります。→ 既知CVE(CVSS10.0)の放置で1.47億人が漏れた話
だから機械に見張らせます。
やりがちな失敗
- ニュースを見て「うちは大丈夫そう」と人力で判断
package.jsonの表記だけ見て危険度を測る- 「いつか更新する」で期限を決めない
機械に見張らせる
- Dependabot(GitHub):依存に該当するCVEを自動でPR通知
- osv-scanner(Google):ロックファイルを検査、CIに1ステップ
- 実際に動いているバージョンで判定(下限表記を信じない)
ポイントは「実際に動いているバージョン」で判定すること。package.json の下限表記は嘘をつきます(RCE の事故でもこれが誤判定の原因になりました)。
次に読む
- 用語:CVSS とは(深刻度の採点基準) / RCE とは
- 対策:CVE追従のしくみを作る(機械監視)
- 事故:Equifax — 既知CVEの放置
よくある質問
QCVE番号はどう読む?
『CVE-西暦-連番』の形です。例えば CVE-2025-12345 は2025年に採番された脆弱性です。番号自体に深刻度の意味はなく、深刻度は別途 CVSS で表します。連番は4桁固定ではなく、必要に応じて桁が増えます。
QCVE・CVSS・KEV は何が違う?
CVEは『どの脆弱性か』を表す名前、CVSSは『どれくらい深刻か』を表す0〜10のスコア、KEVは『実際に悪用が観測されているか』のリストです。優先順位は、CVSSの高さだけでなくKEV(今まさに撃たれているか)を重く見るのが実務的です。
Q個人開発者がCVEを全部追うのは無理では?
人力では無理で、見落としが事故になります。だから機械に見張らせます。Dependabot(GitHub)や osv-scanner で、自分の依存に該当するCVEだけを自動通知させるのが現実的です。