VulnCheck 커뮤니티 CPE 스키마

NVD 1.0 및 NVD 2.0과 통합하기 위해 오랫동안 사용된 스키마에 VulnCheck 필드를 추가하여 제공합니다

VulnCheck에서 제공하는 NIST NVD 1.0NIST NVD 2.0은 NIST가 개발한 JSON 스키마를 따릅니다:

  1. NVD 1.0 스키마
  2. NVD 2.0 스키마

이 스키마에서 유일한 예외는 VulnCheck가 CPE 보강을 추가한 부분입니다. VulnCheck의 CPE 데이터를 NIST가 채우는 동일한 필드에 추가하면 혼동을 줄 수 있기 때문에, 대신 다음과 같은 필드를 추가했습니다:

  1. vcConfigurations: NVD의 configurations 필드와 동일하지만, VulnCheck에서 채움.
  2. vcVulnerableCPEs: NVD는 CPE “unrolling”을 위해 matchCriteriaId를 사용합니다. VulnCheck는 이 추가 단계를 제거하고, unrolled CPE를 vcVulnerableCPEs 필드에 포함하기로 했습니다.

주의할 점은, vcConfigurationsmatchCriteriaId는 항상 비어 있게 되며, 대신 vcVulnerableCPEs를 사용합니다. 그러나 이는 NIST 스키마에서 필수 필드이므로 그대로 두었습니다.

VulnCheck가 추가한 NIST NVD 2.0의 CPE 예시

아래 vcConfigurationsvcVulnerableCPEs 예시는 nist-nvd2?cve=CVE-2024-28746에서 가져온 것입니다. cpeMatch는 영향을 받는 버전을 설명하며, vcVulnerableCPEs는 이를 나열합니다.

  "vcConfigurations": [
    {
      "nodes": [
        {
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
              "versionStartIncluding": "2.8.0",
              "versionEndExcluding": "2.8.3",
              "matchCriteriaId": ""
            }
          ]
        }
      ]
    }
  ],
  "vcVulnerableCPEs": [
    "cpe:2.3:a:apache:airflow:2.8.0:*:*:*:*:*:*:*",
    "cpe:2.3:a:apache:airflow:2.8.1:*:*:*:*:*:*:*",
    "cpe:2.3:a:apache:airflow:2.8.2:*:*:*:*:*:*:*"
  ]

VulnCheck가 추가한 NIST NVD 1.0의 CPE 예시

아래 vcConfigurationsvcVulnerableCPEs 예시는 nist-nvd?cve=CVE-2024-28746에서 가져온 것입니다:

  "vcConfigurations": {
    "CVE_data_version": "4.0",
    "nodes": [
      {
        "cpe_match": [
          {
            "vulnerable": true,
            "cpe23Uri": "cpe:2.3:a:apache:airflow:*:*:*:*:*:*:*:*",
            "versionStartIncluding": "2.8.0",
            "versionEndExcluding": "2.8.3"
          }
        ]
      }
    ]
  },
  "vcVulnerableCPEs": [
    "cpe:2.3:a:apache:airflow:2.8.0:*:*:*:*:*:*:*",
    "cpe:2.3:a:apache:airflow:2.8.1:*:*:*:*:*:*:*",
    "cpe:2.3:a:apache:airflow:2.8.2:*:*:*:*:*:*:*"
  ]