diff options
| author | Peter Marko <peter.marko@siemens.com> | 2024-10-23 11:45:22 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2024-10-25 15:25:33 +0100 |
| commit | 3b551fc466b992ac09ab04d54ddcb3c36e1dd670 (patch) | |
| tree | 936a552df0d2db48fd85b3e62c39754791c4771e /meta/recipes-core | |
| parent | 96a6df7b14c51be156995b79767b9fadd15f9b6e (diff) | |
| download | poky-3b551fc466b992ac09ab04d54ddcb3c36e1dd670.tar.gz | |
cve-check: add support for cvss v4.0
https://nvd.nist.gov/general/news/cvss-v4-0-official-support
CVSS v4.0 was released in November 2023
NVD announced support for it in June 2024
Current stats are:
* cvss v4 provided, but also v3, so cve-check showed a value
sqlite> select count(*) from nvd where scorev4 != 0.0 and scorev3 != 0.0;
2069
* only cvss v4 provided, so cve-check did not show any
sqlite> select count(*) from nvd where scorev4 != 0.0 and scorev3 = 0.0;
260
(From OE-Core rev: 358dbfcd80ae1fa414d294c865dd293670c287f0)
Signed-off-by: Peter Marko <peter.marko@siemens.com>
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
| -rw-r--r-- | meta/recipes-core/meta/cve-update-nvd2-native.bb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/meta/recipes-core/meta/cve-update-nvd2-native.bb b/meta/recipes-core/meta/cve-update-nvd2-native.bb index a7e568e307..93d1fa1de6 100644 --- a/meta/recipes-core/meta/cve-update-nvd2-native.bb +++ b/meta/recipes-core/meta/cve-update-nvd2-native.bb | |||
| @@ -255,7 +255,7 @@ def initialize_db(conn): | |||
| 255 | c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") | 255 | c.execute("CREATE TABLE IF NOT EXISTS META (YEAR INTEGER UNIQUE, DATE TEXT)") |
| 256 | 256 | ||
| 257 | c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ | 257 | c.execute("CREATE TABLE IF NOT EXISTS NVD (ID TEXT UNIQUE, SUMMARY TEXT, \ |
| 258 | SCOREV2 TEXT, SCOREV3 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)") | 258 | SCOREV2 TEXT, SCOREV3 TEXT, SCOREV4 TEXT, MODIFIED INTEGER, VECTOR TEXT, VECTORSTRING TEXT)") |
| 259 | 259 | ||
| 260 | c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \ | 260 | c.execute("CREATE TABLE IF NOT EXISTS PRODUCTS (ID TEXT, \ |
| 261 | VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \ | 261 | VENDOR TEXT, PRODUCT TEXT, VERSION_START TEXT, OPERATOR_START TEXT, \ |
| @@ -361,12 +361,18 @@ def update_db(conn, elt): | |||
| 361 | cvssv3 = cvssv3 or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore'] | 361 | cvssv3 = cvssv3 or elt['cve']['metrics']['cvssMetricV31'][0]['cvssData']['baseScore'] |
| 362 | except KeyError: | 362 | except KeyError: |
| 363 | pass | 363 | pass |
| 364 | cvssv3 = cvssv3 or 0.0 | ||
| 365 | try: | ||
| 366 | accessVector = accessVector or elt['cve']['metrics']['cvssMetricV40'][0]['cvssData']['attackVector'] | ||
| 367 | vectorString = vectorString or elt['cve']['metrics']['cvssMetricV40'][0]['cvssData']['vectorString'] | ||
| 368 | cvssv4 = elt['cve']['metrics']['cvssMetricV40'][0]['cvssData']['baseScore'] | ||
| 369 | except KeyError: | ||
| 370 | cvssv4 = 0.0 | ||
| 364 | accessVector = accessVector or "UNKNOWN" | 371 | accessVector = accessVector or "UNKNOWN" |
| 365 | vectorString = vectorString or "UNKNOWN" | 372 | vectorString = vectorString or "UNKNOWN" |
| 366 | cvssv3 = cvssv3 or 0.0 | ||
| 367 | 373 | ||
| 368 | conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?)", | 374 | conn.execute("insert or replace into NVD values (?, ?, ?, ?, ?, ?, ?, ?)", |
| 369 | [cveId, cveDesc, cvssv2, cvssv3, date, accessVector, vectorString]).close() | 375 | [cveId, cveDesc, cvssv2, cvssv3, cvssv4, date, accessVector, vectorString]).close() |
| 370 | 376 | ||
| 371 | try: | 377 | try: |
| 372 | # Remove any pre-existing CVE configuration. Even for partial database | 378 | # Remove any pre-existing CVE configuration. Even for partial database |
