术语表

什么是 CVE?漏洞统一编号机制的原理

CVE 是为全球漏洞分配的唯一编号(如 CVE-2025-12345),让大家用同一个名字称呼同一个漏洞。讲解编号的读法、CVE 与 CVSS、KEV 的区别,以及个人开发者如何用机器监控追踪。

发布于 2026-06-07 更新于 2026-10-06 3 分钟阅读
本页目录

「CVE-2021-44228」「CVE-2017-5638」这样的编号,在每一则重大事故新闻里都会出现。本文讲解它们的含义,以及个人开发者现实可行的追踪方法。

编号怎么读

CVE 编号由 3 个部分构成。编号本身不含严重程度的含义(严重程度是另外一回事)。

CVE通用前缀
–
2025分配编号的年份
–
12345该年份内的序号
CVE 标识符的结构。序号并非固定 4 位,会根据需要增加位数。

为什么需要它

漏洞每天都被大量发现。如果叫法各不相同,「你说的那个漏洞」和「我修好的那个漏洞」是不是同一个就分不清了。有了 CVE 这个通用 ID,新闻、修复补丁、扫描器、数据库就能可靠地指向同一个漏洞。这就是对策的起点。

编号由谁分配

CVE 由 CVE 计划(CVE Program)管理,由美国的 MITRE 运营、美国 CISA 出资支持。编号本身由世界各地获得授权的 CNA(CVE 编号分配机构)来分配:软件厂商、安全研究机构、各国的 CERT 等,总数达数百个。在日本,JPCERT/CC 就是其中之一。

CVE 记录有状态之分。「Reserved(预留)」表示编号已占下但细节未公开;「Published(已公开)」表示内容已公开;「Rejected(已拒绝)」表示因重复或错误而撤回。新闻里出现了编号却查不到细节时,它可能仍处于预留状态。

CVE、NVD、JVN 的区别

同一个 CVE 编号,在不同地方查到的信息不一样。

名称运营方包含的内容用途
CVE(cve.org)MITRE(CISA 支持)编号、简短说明、参考链接查正式编号与概要
NVD美国 NISTCVE 信息加上 CVSS 分数和受影响产品查分数和哪些产品受影响
JVNJPCERT/CC 与 IPA日本产品的漏洞,附日语说明与对策日语详情、日本产品
KEV美国 CISA已确认被利用的 CVE,附修复期限确定优先级

CVE、CVSS、KEV:各自告诉你什么

这三者常常一起出现,但它们回答的是不同的问题。确定优先级时三者都要用上。

术语回答的问题例子
CVE是哪个漏洞(名字)CVE-2021-44228(Log4Shell)
CVSS有多严重(0~10)10.0(最高一档)
KEV是否已被实际利用列入被利用观测清单=最高优先

CVSS 高≠最高优先,未必如此

分数是「最坏条件下的理论值」。在实务中要结合 KEV(是否正被实际利用) 和你自己是否在用那个功能一起判断。CVSS 10.0 但没在用,影响就很小;分数中等但正被利用,则是最高优先。

从分配编号到修复的流程

CVE 不是「一发现就立刻公开」,而是经过协调后才公开。大致是这样的流程。

1

发现与上报

研究者或厂商发现漏洞,向编号分配机构(CNA)上报。
2

预留(Reserved)

先把 CVE 编号占下来。细节仍处于保密状态。
3

修复与公开(Published)

配合补丁发布同时披露细节。多数会「与修复同时」公之于众。
4

被利用观测(列入 KEV)

一旦观测到实际攻击便被列为最高优先。此时还放任不管就会被攻破。

实例:反复出现在新闻里的 CVE

下面是本站报道过的事故及其 CVE 编号。编号不需要背下来;关键在于:用编号检索,就能把各处关于同一个漏洞的信息汇集起来。

CVE 编号通称/产品相关事故
CVE-2014-0160Heartbleed(OpenSSL)Heartbleed:服务器内存被泄露
CVE-2017-5638Apache StrutsEquifax:未打补丁,1.47 亿人的数据外泄
CVE-2018-13379VPN 设备半田医院:据报道是勒索软件的入侵入口
CVE-2021-44228Log4Shell(Log4j)Log4Shell:通过没人注意到的间接依赖被使用
CVE-2023-34362MOVEit TransferMOVEit:危害波及 2,700 多个组织
CVE-2024-3094XZ UtilsXZ Utils:发布文件中被植入后门

编号一旦公开,攻击者读到的也是同样的信息。在 Equifax 和半田医院的事故中,从修复发布到遭到入侵之间都有一段时间。在你应用修复之前的这段时间,就是可能被攻击的时间。

个人开发者现实可行的追踪方法

靠人力把所有 CVE 都追一遍是不可能的,而那个漏掉的疏忽会直接变成事故。→ 已公开的 CVSS 10.0 被漏看数月的故事

所以要让机器来盯。

常犯的错误

  • 看了新闻就凭人力判断「我们应该没事」
  • 只看 package.json 里的写法来估危险程度
  • 用「以后再更新」搪塞,不定截止期限

让机器来盯

  • Dependabot(GitHub):对依赖中相关的 CVE 自动发 PR 通知
  • osv-scanner(Google):检查锁文件,在 CI 中只需一步
  • 以实际运行的版本来判定(不要轻信下限写法)

要点在于以「实际运行的版本」来判定。package.json 里的下限写法可能与实际运行的版本不同(RCE 的事故中,这也曾是误判的原因)。

如何检查自己的环境

1

查一个 CVE 编号讲的是什么

把新闻里出现的编号输入 CVE / KEV 查询,就能一次看到它的 CVSS 分数、被利用概率(EPSS)以及是否在 KEV 中。

2

列出影响你依赖的 CVE

把锁文件(package-lock.json、pnpm-lock.yaml 等)载入 依赖漏洞扫描器,即可得到相关 CVE 和 GHSA 的清单。npm 项目用 npm audit 也能做到同样的事。

3

服务器和设备按产品与版本对照

对于服务器、VPN 设备等不在包管理器里的产品,查看厂商的安全公告,确认你运行的版本是否受影响。如果受影响,就为更新定下期限(→ CVE 的实际处置流程)。

出处(一手资料)

  • CVE Program, "Process" — cve.org(由 CNA 分配编号以及 CVE 记录的状态)
  • NIST, "National Vulnerability Database" — nvd.nist.gov
  • JPCERT/CC and IPA, "JVN (Japan Vulnerability Notes)" — jvn.jp
  • CISA, "Known Exploited Vulnerabilities Catalog" — cisa.gov

接下来读什么

FAQ

QCVE 编号怎么读?
A

它的形式是“CVE-公元年份-序号”。例如 CVE-2025-12345 就是 2025 年分配的漏洞。编号本身不含严重程度的含义,严重程度另由 CVSS 表示。序号并非固定 4 位,会根据需要增加位数。

QCVE、CVSS、KEV 有什么区别?
A

CVE 是表示“是哪个漏洞”的名字,CVSS 是表示“有多严重”的 0~10 分数,KEV 是“是否已观测到实际被利用”的清单。在确定优先级时,不应只看 CVSS 的高低,把 KEV(是否正在被攻击)看得更重才更贴近实务。

Q个人开发者要把所有 CVE 都追一遍是不是不可能?
A

靠人力确实不可能,漏掉就会变成事故。所以要让机器来盯。用 Dependabot(GitHub)或 osv-scanner,让它只对你自己依赖中相关的 CVE 自动通知,这才现实。

QCVE 是什么的缩写?
A

是 Common Vulnerabilities and Exposures(通用漏洞披露)的缩写。它指的是 1999 年启动的 CVE 计划(CVE Program),为已公开的漏洞分配通用标识符。该计划由美国非营利组织 MITRE 运营,资金来自美国网络安全和基础设施安全局(CISA)。

QCVE、NVD、JVN 有什么区别?
A

CVE 是标识符加简短说明的清单。NVD 是美国 NIST 运营的数据库,为每个 CVE 补充 CVSS 分数和受影响产品等信息。JVN 是由 JPCERT/CC 与 IPA 运营的日本漏洞信息门户,收录日本产品的漏洞,并附日语说明。三者都可以用同一个 CVE 编号检索。

Q有没有不带 CVE 编号的漏洞?
A

有。有的漏洞修复时没人申请 CVE,有的只有厂商自己的公告编号,有的只有 GitHub 安全公告编号(GHSA-...)。没有 CVE 并不代表安全。对于依赖,osv-scanner 这类同时对照 CVE、GHSA 等多个来源的工具会更有帮助。