mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-05 05:04:44 +02:00
spdx30: Allow VEX Justification to be configurable
Instead of hard coding the VEX justifications for "Ignored" CVE status, add a map that configures what justification should be used for each status. This allows other justifications to be easily added, and also ensures that status fields added externally (by downstream) can set an appropriate justification if necessary. (From OE-Core rev: c0fa3d92cefa74fa57c6c48c94acc64aa454e781) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
2fef1b9af0
commit
860aedadc9
|
@ -28,8 +28,12 @@ CVE_CHECK_STATUSMAP[cpe-incorrect] = "Ignored"
|
|||
CVE_CHECK_STATUSMAP[disputed] = "Ignored"
|
||||
# use when vulnerability depends on build or runtime configuration which is not used
|
||||
CVE_CHECK_STATUSMAP[not-applicable-config] = "Ignored"
|
||||
CVE_CHECK_VEX_JUSTIFICATION[not-applicable-config] = "vulnerableCodeNotPresent"
|
||||
|
||||
# use when vulnerability affects other platform (e.g. Windows or Debian)
|
||||
CVE_CHECK_STATUSMAP[not-applicable-platform] = "Ignored"
|
||||
CVE_CHECK_VEX_JUSTIFICATION[not-applicable-platform] = "vulnerableCodeNotPresent"
|
||||
|
||||
# use when upstream acknowledged the vulnerability but does not plan to fix it
|
||||
CVE_CHECK_STATUSMAP[upstream-wontfix] = "Ignored"
|
||||
|
||||
|
|
|
@ -724,24 +724,23 @@ def create_spdx(d):
|
|||
impact_statement=description,
|
||||
)
|
||||
|
||||
if detail in (
|
||||
"ignored",
|
||||
"cpe-incorrect",
|
||||
"disputed",
|
||||
"upstream-wontfix",
|
||||
):
|
||||
# VEX doesn't have justifications for this
|
||||
pass
|
||||
elif detail in (
|
||||
"not-applicable-config",
|
||||
"not-applicable-platform",
|
||||
):
|
||||
for v in spdx_vex:
|
||||
v.security_justificationType = (
|
||||
oe.spdx30.security_VexJustificationType.vulnerableCodeNotPresent
|
||||
vex_just_type = d.getVarFlag(
|
||||
"CVE_CHECK_VEX_JUSTIFICATION", detail
|
||||
)
|
||||
if vex_just_type:
|
||||
if (
|
||||
vex_just_type
|
||||
not in oe.spdx30.security_VexJustificationType.NAMED_INDIVIDUALS
|
||||
):
|
||||
bb.fatal(
|
||||
f"Unknown vex justification '{vex_just_type}', detail '{detail}', for ignored {cve}"
|
||||
)
|
||||
else:
|
||||
bb.fatal(f"Unknown detail '{detail}' for ignored {cve}")
|
||||
|
||||
for v in spdx_vex:
|
||||
v.security_justificationType = oe.spdx30.security_VexJustificationType.NAMED_INDIVIDUALS[
|
||||
vex_just_type
|
||||
]
|
||||
|
||||
elif status == "Unknown":
|
||||
bb.note(f"Skipping {cve} with status 'Unknown'")
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue
Block a user