Skip to content

On the identification of vulnerabilities #232

@pombredanne

Description

@pombredanne

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:

  1. 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
  2. we could become our CNA which is yet another level of "ceremony"
  3. 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-xxxx as its identifier
  • b. It does not have a CVE, then we create the VULCODE-xxxx as its identifier
  • c. later if that VULCODE-xxx vulnerability gets a CVE, we will replace the id with the CVE-xxx id and move the VULCODE-xxx id 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-xxx or CVE-xxx
    • vc_identifier: empty or VULCODE-xxx if identifier is a CVE-xxx

Later we can have processes for 1. and/or 2. but that's completely independent

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions