cve-update-db-native: consider version suffix when update CVE db

some record from NVD can merge or split suffix from version, for
example:
  CVE-2017-15906
  "cpe23Uri" : "cpe:2.3🅰️openbsd:openssh:5.0:p1:*:*:*:*:*:*"
  "cpe23Uri" : "cpe:2.3🅰️openbsd:openssh:4.7p1:*:*:*:*:*:*:*"

in such case include the suffix into version when update local CVE db.

(From OE-Core rev: b8d3e1754faea3ba0b6e07d5a830fbab12b5f53d)

Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit 13cc68197f81bb7c76fa1abecc5dd720b8bdb8d5)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Lee Chee Yang
2021-03-04 22:44:06 +08:00
committed by Richard Purdie
parent 1514b088ec
commit daf52f58e3

View File

@@ -137,9 +137,14 @@ def parse_node_and_insert(c, node, cveId):
product = cpe23[4]
version = cpe23[5]
if cpe23[6] == '*' or cpe23[6] == '-':
version_suffix = ""
else:
version_suffix = "_" + cpe23[6]
if version != '*' and version != '-':
# Version is defined, this is a '=' match
yield [cveId, vendor, product, version, '=', '', '']
yield [cveId, vendor, product, version + version_suffix, '=', '', '']
elif version == '-':
# no version information is available
yield [cveId, vendor, product, version, '', '', '']