-
-
Notifications
You must be signed in to change notification settings - Fork 266
Description
We need to have some externally stable identifier for a vulnerability.
By stable I mean that should be there forever and immutable so it can be used reliably to reference a vulnerability.
A CVE may not exist so we have a problem with using CVE everywhere.
When there is no CVE:
- we could request a CVE id https://cveform.mitre.org/ and that's a manual process that not straightforward and we may not have yet all the data required to get a CVE id
- we could become our CNA which is yet another level of "ceremony"
- we could just assign our own ids and bypass 1. and 2. for the sake of speed, practicality and automation
I suggest that we use 3. and have our own prefix (TBD, such as VULCODE-xxxx) and we assign ids to a vulnerability this way:
- a. It has a CVE, then we reuse the
CVE-xxxxas its identifier - b. It does not have a CVE, then we create the
VULCODE-xxxxas its identifier - c. later if that
VULCODE-xxxvulnerability gets a CVE, we will replace the id with theCVE-xxxid and move theVULCODE-xxxid as a reference for that vulnerability.
From a usage standpoint, this means that we should be able to search a vulnerability not only based on its identifier (that may change over time) but also based on its references.
Alternatively to c. above we could have a dedicated field to store the previous VULCODE-xxx when this is replaced by an assigned CVE-xxxid.
The model could look like this
- Vulnerability
- identifier:
VULCODE-xxxorCVE-xxx - vc_identifier: empty or
VULCODE-xxxif identifier is aCVE-xxx
- identifier:
Later we can have processes for 1. and/or 2. but that's completely independent