编号格式与年份含义
CVE 编号的格式固定为 CVE-年份-序号,其中年份是编号分配的年份,不是漏洞被披露或影响的年份;序号至少四位数字,2014 年前后开始普遍突破四位。因此『编号越大越新』只在同一年内大致成立,跨年份比较没有意义。
基本信息
| 格式 | CVE-YYYY-NNNN,序号至少四位 |
|---|---|
| 年份含义 | 编号分配年份,非披露年份 |
| 序号位数 | 四位起步,可增长到五位以上 |
| 校验方式 | 正则校验字段格式 |
| 常见误解 | 编号大小代表漏洞新旧 |
典型使用场景
- 台账字段校验:入库前用正则校验编号格式,拦掉手工录入的错号
- 日志解析:从告警与公告文本中提取编号做关联
- 数据排序:按编号排序约等于按分配顺序排序,可用于粗略时序分析
- 时间分析:需要真实时间时应使用公告发布日期字段
- 多源汇总:统一编号大小写格式,避免同一编号被当作两条记录
编号示例
编号示例
CVE-2014-0160 心脏滴血(四位序号)
CVE-2021-44228 Log4Shell
CVE-2024-3400 五位序号已常见
CVE-2022-0001 与 CVE-2023-0001 属于不同年份的编号序列
# 同一年内序号随分配增长,编号大小不代表漏洞新旧校验正则
校验正则
^CVE-\d{4}-\d{4,}$ # 宽松校验:年份四位,序号四位以上
^CVE-(19|20)\d{2}-\d{4,}$ # 更严格:限定年份前缀
# 用途:台账字段校验、日志解析、批量清洗重复编号常见误用与纠正
| 误用 | 错在哪里 | 正确做法 |
|---|---|---|
| 用编号大小判断新旧 | 年份不同则序列无关 | 按公告发布日期判断 |
| 序号固定四位校验 | 五位编号会被判为非法 | 允许四位以上 |
| 小写 cve 入库 | 同一编号出现两种写法 | 统一转为大写后入库 |
| 把年份当披露年份 | 年份是分配年份 | 区分分配与披露两个字段 |
按编号排序约等于按分配顺序排序:要按时间分析,应使用公告的发布日期字段;两个字段在台账里最好都保留。
厂商可能提前申领编号,因此在同一年内可以看到编号顺序与披露顺序明显不一致,例如低位序号在很晚才公开,这属于正常现象而不是数据错误。