Description
Context
In our current approach, we aggregate data from multiple advisories in a single vulnerability which is unique based on its aliases.
Problem
An Advisory may be strictly about a given Package ecosystem, and provide a score just for an ecosystem. Therefore, if we merge and combine everything in a single Vulnerability, we can end up with misleading data or messy data. In some other cases, we historically mixed importing and improving, leading to performance and confusion issues.
For instance we have these issues:
- What if different advisories report different version range for the same vulnerability? #1297
- One vulnerability affecting different packages. #1193
- The Severity table in the Vulnerability UI would benefit from clarification and normalization #889
- Store and/or trace data provenance #838
- Handle summaries of vulnerabilities obtained from different sources #361
Solution
The relationship should not be between a Package and a Vulnerability but rather a Package and an Advisory, and an Advisory to a Vulnerability.
Similarly, scores, categories and references may be specific to an Advisory and not about all the packages subject to a Vulnerability.
In this design we would essentially adopt a structure similar to that of VulnTotal
where multiple advisories are either concurring to the same impact conclusion or may disagree (which becomes a problem that needs curation either with a manual review or improvers)
Severity may also need some rethinking as they are from an Advisory and specific to some packages in many cases. For instance the severity/scores published by RedHat are only about the RPM packaging of a vulnerable package, not about any package or upstream in general.
See also:
- Re-design Package to Vulnerability model relationships #1068
- VulnTotal like structure #1316
- Add date of publishing in vulnerability detail view #1355 because the date of publishing may be really an advisory concept
Metadata
Metadata
Assignees
Type
Projects
Status