support/scripts/cve.py: properly match CPEs with version '*'
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Wed, 4 Nov 2020 14:51:35 +0000 (15:51 +0100)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Thu, 26 Nov 2020 15:31:37 +0000 (16:31 +0100)
commit1ff7f003e1cfc02241aef8f35429462edd60ed09
tree803d5efb6370466dec175dfc061156c88ba1439c
parent3f2ccb46823469eca2cf2361ee79aaaf0dd4b39a
support/scripts/cve.py: properly match CPEs with version '*'

Currently, when the version encoded in a CPE is '-', we assume all
versions are affected, but when it's '*' with no further range
information, we assume no version is affected.

This doesn't make sense, so instead, we handle '*' and '-' in the same
way. If there's no version information available in the CVE CPE ID, we
assume all versions are affected.

This increases quite a bit the number of CVEs and package affected:

-    "total-cves": 302,
-    "pkg-cves": 100,
+    "total-cves": 597,
+    "pkg-cves": 135,

For example, CVE-2007-4476 has a CPE ID of:

    cpe:2.3:a:gnu:tar:*:*:*:*:*:*:*:*

So it should be taken into account. In this specific case, it is
combined with an AND with CPE ID
cpe:2.3:o:suse:suse_linux:10:*:enterprise_server:*:*:*:*:* but since
we don't support this kind of matching, we'd better be on the safe
side, and report this CVE as affecting tar, do an analysis of the CVE
impact, and document it in TAR_IGNORE_CVES.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
support/scripts/cve.py