-
Notifications
You must be signed in to change notification settings - Fork 101
Open
Description
Hello,
for a university project a fellow student and I had a look in December 2022 at the back then 141 GitHub-reviewed withdrawn advisories in the GitHub Advisory Database, which uses the OSV schema. Back then we noticed the following main issues:
- for 23% no reason for withdrawing was obvious at all
- no uniform way to describe the withdrawing reason; the OSV schema documentation just says "should go into the summary text"1
- if we could determine the reason for withdrawing, we found it in 95% in the description; in the other cases we had to go through the references or perform external searches to find more information
- sometimes the reason was mentioned at the start of the description, sometimes at the end; the format was not uniform at all
- in some cases GitHub issues or discussions were referenced, but often no direct link to a specific comment so you would have to go through the whole conversation to understand the reason
- sometimes the complete description and title were replaced with something like "** REJECT ** DO NOT USE THIS CANDIDATE NUMBER. ..." or similar text; this makes it difficult to understand what the advisory was about in the first place
- 56% of the advisories were withdrawn because they are duplicates, but only for ~50% of them the duplicated advisory was mentioned
Based on this we suggest:
- To introduce an additional field, such as
withdrawn_reason
(Markdown text field), which is mandatory when an advisory is withdrawn - To specify guidelines how withdrawn advisories should be represented:
- When an advisory is withdrawn, only a
withdrawn_reason
should be set. The originalsummary
anddetails
should remain unchanged. Vulnerability database UIs should properly indicate that an advisory is withdrawn without having to rely on special (non-standard)summary
texts. - The
withdrawn_reason
should shortly describe the reason and optionally link to discussions (e.g. GitHub issues) for additional information. Only referring to a GitHub issue (especially without referring to a specific summarizing comment) should be avoided. - If possible the reason should explain why the advisory was withdrawn and not be something as generic as "This issue was not considered a vulnerability", but instead for example "Withdrawn because product XYZ is intended as command line program run with trusted user input". This way users might notice if the vulnerability actually applies to them because they are using a program incorrectly and in an unsafe way.
- If an advisory is withdrawn because it is a duplicate, the duplicated advisory ID should be mentioned in the
withdrawn_reason
field. Or alternatively as proposed in Expand vuln id relationships #53, there should be standard relationship types to indicate the duplicated advisory.
- When an advisory is withdrawn, only a
We hope this information is helpful. What do you think?
Here is the discussion specific to the GitHub Advisory Database: github/advisory-database#2420
Footnotes
-
Maybe this is also a bug / ambiguity in the documentation, because I assume you mean with "summary" here the
details
and not thesummary
field, since thesummary
is the plaintext title and you can hardly describe the reason there in much detail. ↩
Metadata
Metadata
Assignees
Labels
No labels