You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bash中用JQ为漏洞JSON添加基于CVEID的URL字段

解决方案:保留原JSON层级并添加URL字段

核心问题是之前的JQ命令错误地提取了vulnerabilities数组的元素,而非原地修改原数组结构。使用|=操作符可以在保留完整JSON层级的前提下,为每个漏洞对象添加目标字段。

基础JQ命令

jq '.vulnerabilities[] |= . + {
  MITRE_URL: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=" + .CVEID,
  NIST_URL: "https://nvd.nist.gov/vuln/detail/" + .CVEID
}' input.json > output.json

命令解释

  • .vulnerabilities[] |=:遍历vulnerabilities数组的每个元素,原地修改原数组(而非提取元素),确保整个JSON的层级结构完整保留。
  • . + { ... }:将原漏洞对象与新生成的包含URL的对象合并,实现字段添加。

处理空CVEID的健壮版本

如果存在CVEID为空的漏洞,可通过// ""避免URL拼接出错:

jq '.vulnerabilities[] |= . + {
  MITRE_URL: "https://cve.mitre.org/cgi-bin/cvename.cgi?name=" + (.CVEID // ""),
  NIST_URL: "https://nvd.nist.gov/vuln/detail/" + (.CVEID // "")
}' input.json > output.json

示例验证

输入JSON(简化版)

{
  "scan_metadata": {
    "scan_id": "123",
    "timestamp": "2024-05-20"
  },
  "vulnerabilities": [
    {
      "CVEID": "CVE-2023-1234",
      "severity": "Critical",
      "description": "Sample vuln"
    },
    {
      "CVEID": "CVE-2023-5678",
      "severity": "High",
      "description": "Another vuln"
    }
  ]
}

输出JSON(保留原结构并添加字段)

{
  "scan_metadata": {
    "scan_id": "123",
    "timestamp": "2024-05-20"
  },
  "vulnerabilities": [
    {
      "CVEID": "CVE-2023-1234",
      "severity": "Critical",
      "description": "Sample vuln",
      "MITRE_URL": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-1234",
      "NIST_URL": "https://nvd.nist.gov/vuln/detail/CVE-2023-1234"
    },
    {
      "CVEID": "CVE-2023-5678",
      "severity": "High",
      "description": "Another vuln",
      "MITRE_URL": "https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-5678",
      "NIST_URL": "https://nvd.nist.gov/vuln/detail/CVE-2023-5678"
    }
  ]
}

后续导出TSV

基于修改后的完整JSON,可直接提取目标字段生成TSV:

jq -r '.vulnerabilities[] | [.CVEID, .severity, .MITRE_URL, .NIST_URL] | @tsv' output.json > output.tsv

内容的提问来源于stack exchange,提问作者z3plike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:43:27