首页/安全/漏洞与攻击面速查/NVD API 2.0 查询用法
漏洞基础与评分46 条

NVD API 2.0 查询用法

NVD 提供 REST API 2.0,可按 CVE 编号或时间窗口拉取漏洞数据(含 CVSS 评分、CWE、参考链接);接口有速率限制,批量拉取要控制节奏并本地缓存。

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

NVD API 2.0 是什么

NVD(美国国家漏洞数据库)的 REST API 2.0 提供按 CVE 编号或时间窗口查询漏洞记录的接口,返回 CVSS 评分、CWE 分类、CPE 适用性与参考链接。相对早期只能整包下载的 JSON feed,2.0 支持条件查询与分页,适合做增量同步。代价是接口有明确的速率限制,批量拉取必须做退避重试与本地缓存。

基本信息

接口基址https://services.nvd.nist.gov/rest/json/cves/2.0
认证方式可选 apiKey 请求头,不填为匿名访问
速率限制(匿名)滚动 30 秒窗口内 5 次请求
速率限制(带 Key)滚动 30 秒窗口内 50 次请求
时间窗口上限单次查询的日期跨度不超过 120 天
分页参数startIndex 起始偏移,resultsPerPage 每页条数,上限 2000
增量参数lastModStartDate / lastModEndDate 按修改时间拉取
数据许可NVD 数据为美国联邦公开数据,引用仍建议标注来源与获取时间

典型使用场景

  • 资产漏洞匹配完成后补 CVSS 评分与 CWE 分类
  • 每日增量同步新增与修订的 CVE,落到内部漏洞库
  • 定级会前批量导出高危清单,附评分与参考链接
  • 与 KEV 目录联合排序,标出有在野利用记录的条目
  • 审计报告引用:用编号与评分作为客观依据
  • 工具链集成:扫描器结果用 API 补齐标准字段后入库

查询示例

查询示例
# 1) 按编号查询,取出所有版本的 CVSS 度量
curl -s "https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2021-44228" \
  | jq '.vulnerabilities[0].cve.metrics'
# 2) 带 API Key 提升配额,Key 放在请求头
curl -s -H "apiKey: $NVD_KEY" \
  "https://services.nvd.nist.gov/rest/json/cves/2.0?pubStartDate=2024-01-01T00:00:00.000&pubEndDate=2024-01-07T00:00:00.000&startIndex=0&resultsPerPage=100" \
  | jq '.totalResults'
# 3) 先看 totalResults 再决定翻页次数,避免一次拉爆配额
# 4) 增量同步用修改时间窗口,比发布时间更贴近真实变化

响应字段读法

字段含义正常与异常
vulnerabilities[]命中的漏洞条目数组空数组表示没查到,不是接口故障
totalResults命中总数大于 resultsPerPage 时必须翻页
cve.metrics.cvssMetricV31CVSS v3.1 评分与向量缺失表示尚未评分,不能当 0 分处理
cve.weaknessesCWE 分类缺失通常是尚未富化
cve.vulnStatus分析状态Awaiting Analysis 表示细节可能后续变化
timestamp本次响应数据版本时间用于记录同步水位
cve.configurationsCPE 适用性条件历史条目可能缺失,需回看厂商公告
超过速率限制或窗口跨度超 120 天会返回 403、503 或超时。同步脚本必须做指数退避、断点续传与本地缓存,否则任务会长期断档。
metrics 下可能同时存在 cvssMetricV2、V30、V31 甚至 v4.0 条目,取数逻辑要按版本优先取最新可用值,并按来源区分 NVD 自评与 CNA 提交。

易错点

  • 匿名高频请求会返回 403 或 503,没有退避重试的脚本会静默失败,同步任务断档数天
  • 时间窗口超过 120 天或 resultsPerPage 设得过大,请求超时且浪费配额,应按天切片
  • 只按 pubStartDate 增量会漏掉修订,改用 lastModStartDate 并按天推进
  • 把缺失的评分当 0 分排序,导致未评分的高危漏洞被排到最后
  • 把 NVD 的 CPE 匹配当资产匹配的权威结论,历史条目富化滞后,仍需回看厂商公告

数据来源与参考

  • NVD API 2.0 文档(nvd.nist.gov/developers)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌