首页/安全/漏洞与攻击面速查/CVE JSON 5.0 记录结构解读
漏洞基础与评分46 条

CVE JSON 5.0 记录结构解读

CVE 记录采用 JSON 5.0 结构:顶层 cveMetadata 描述编号与状态,containers.cna 是分配机构提供的漏洞信息(受影响产品、描述、参考),containers.adp 存放下游机构补充的富化数据。

漏洞与攻击面速查安全更新于 2026-10-13

CVE 记录长什么样

CVE 计划从 2020 年代起用 JSON 5.0 结构替代旧的纯文本记录:每条 CVE 是一份 JSON 文档,顶层 cveMetadata 记录编号、状态、分配与发布时间,containers 里 cna 是分配机构填报的漏洞信息(描述、受影响产品、参考链接、CNA 自评分),adp 是下游授权数据发布机构补充的富化数据。做漏洞库自动入库、资产匹配和通报生成时,解析的就是这份结构。

基本信息

规范CVE JSON 5.0(cve-schema,CVE Program 维护)
获取途径cve.org 记录页、GitHub cvelistV5 仓库、CVE Services API
必填容器containers.cna,由 CNA(编号分配机构)填报
可选容器containers.adp,如 CISA-ADP 补充 KEV、SSVC 决策点
与 NVD 的关系互补关系:字段命名不同,NVD 在 CVE 基础上做 CPE 与评分富化
排序变化同一记录可能被回填修订,需按更新时间而非发布时间做增量

关键字段读法

字段含义使用注意
cveMetadata.cveIdCVE 编号全局唯一,编号年份段不等于漏洞发现年份
cveMetadata.state记录状态入库过滤 REJECTED,DISPUTED 需人工确认
cveMetadata.datePublished首次发布时间用于对外引用,不适合做增量窗口
cveMetadata.dateUpdated最近更新时间增量同步以它为准,记录被修订时才会变
containers.cna.descriptions漏洞描述数组多语言,取 lang 为 en 或 zh 的条目
containers.cna.affected受影响产品与版本常不完整,机器解析要容错并回看厂商公告
containers.cna.references参考链接带 tags,可筛 vendor-advisory 提权处理
containers.adp下游机构补充KEV、SSVC 等富化数据,可能不存在

典型使用场景

  • 自建漏洞库增量同步:按 dateUpdated 窗口拉取变更记录
  • 资产匹配:用 affected 的产品与版本范围与 CMDB 比对
  • 通报生成:取 descriptions 与 references 生成内网告警
  • 与厂商公告交叉核对:CVE 描述缺失时以厂商 KB 为准
  • 入库清洗:过滤 REJECTED、DISPUTED,避免产生无效工单
  • 对外引用:报告里引用 cveId 而不是别名,便于核查

结构示意(节选)

结构示意(节选)
{
  "cveMetadata": {"cveId": "CVE-2021-44228", "state": "PUBLISHED",
                  "datePublished": "2021-12-10T00:00:00Z",
                  "assignerShortName": "apache"},
  "containers": {
    "cna": {"descriptions": [{"lang": "en", "value": "..."}],
            "affected": [{"product": "log4j",
                          "versions": [{"version": "2.0", "status": "affected"}]}],
            "references": [{"url": "https://...", "tags": ["vendor-advisory"]}]},
    "adp": [{"providerMetadata": {"shortName": "CISA-ADP"},
             "metrics": [{"cvssV3_1": {}}]}]
  }
}
不同 CNA 的字段完整度差异很大:affected 的版本范围常缺失或只写「全部版本」,NVD 的 CPE 匹配也可能滞后,资产匹配结果要人工抽样复核。
只按 datePublished 做增量会漏掉修订记录:CNA 会回填描述、版本范围和参考链接,同步脚本要同时维护「首次入库」与「最近更新」两个时间。

易错点

  • 把 state=REJECTED 的记录也入库,编号存在但漏洞不成立,会持续产生无效工单
  • 只信 cna.metrics 的 CNA 自评分,忽略 NVD 与厂商口径差异,定级偏低或偏高
  • 按 datePublished 增量拉取,漏掉被修订的记录,资产匹配结果长期陈旧
  • 直接信任 affected 的版本范围做资产匹配,范围缺失时漏报,需回看厂商公告
  • 把 references 里的任意链接当补丁地址,实际可能是 PoC 或第三方转述,需按 tags 筛选

数据来源与参考

  • CVE Program JSON 5.0 Schema(github.com/CVEProject/cve-schema)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌