Skip to content

CVSS v4 Assessment With SSVC

CVSS v4 introduces an updated scoring system that includes several metric groupings referred to as Equivalence Sets. In SSVC, we can model these individual equivalence sets as decision tables that can be used by analysts to assess each equivalence set value based on its component metrics (which we have mapped into SSVC decision points).

An Analyst can use these decision tables to assess the CVSS v4 equivalence set values based either on their own assessments or by using a CVSS v4 vector published by another source.

I thought SSVC and CVSS were different?

SSVC and CVSS are indeed different, but they can be used together. We do not see SSVC as a replacement for CVSS, but rather as a complementary decision-making framework that can help stakeholders make a variety of vulnerability response decisions. In fact, we're very interested in using CVSS vector elements as inputs to SSVC decision tables to help stakeholders make more informed prioritization decisions that leverage the community's understanding of a vulnerability's characteristics and impact assessments. In the future, we hope to see more SSVC decision tables that are directly informed by CVSS vectors, allowing analysts to use SSVC to create a broader set of decision models that incorporate CVSS vector elements as inputs.

CVSS v4 Equivalence Sets

Here we provide the decision points for each of the CVSS v4 equivalence sets.

Equivalence Set 1 (cvss:EQ1:1.0.0)

AV/PR/UI with 3 levels specified in Table 24

Value Definition
Low (L) 2: AV:P or not(AV:N or PR:N or UI:N)
Medium (M) 1: (AV:N or PR:N or UI:N) and not (AV:N and PR:N and UI:N) and not AV:P
High (H) 0: AV:N and PR:N and UI:N
Equivalence Set 1 (cvss:EQ1:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "EQ1",
  "version": "1.0.0",
  "name": "Equivalence Set 1",
  "description": "AV/PR/UI with 3 levels specified in Table 24",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "L",
      "name": "Low",
      "description": "2: AV:P or not(AV:N or PR:N or UI:N)"
    },
    {
      "key": "M",
      "name": "Medium",
      "description": "1: (AV:N or PR:N or UI:N) and not (AV:N and PR:N and UI:N) and not AV:P"
    },
    {
      "key": "H",
      "name": "High",
      "description": "0: AV:N and PR:N and UI:N"
    }
  ]
}

Equivalence Set 2 (cvss:EQ2:1.0.0)

AC/AT with 2 levels specified in Table 25

Value Definition
Low (L) 1: not (AC:L and AT:N)
High (H) 0: AC:L and AT:N
Equivalence Set 2 (cvss:EQ2:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "EQ2",
  "version": "1.0.0",
  "name": "Equivalence Set 2",
  "description": "AC/AT with 2 levels specified in Table 25",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "L",
      "name": "Low",
      "description": "1: not (AC:L and AT:N)"
    },
    {
      "key": "H",
      "name": "High",
      "description": "0: AC:L and AT:N"
    }
  ]
}

Equivalence Set 3 (cvss:EQ3:1.0.0)

VC/VI/VA with 3 levels specified in Table 26

Value Definition
Low (L) 2: not (VC:H or VI:H or VA:H)
Medium (M) 1: not (VC:H and VI:H) and (VC:H or VI:H or VA:H)
High (H) 0: VC:H and VI:H
Equivalence Set 3 (cvss:EQ3:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "EQ3",
  "version": "1.0.0",
  "name": "Equivalence Set 3",
  "description": "VC/VI/VA with 3 levels specified in Table 26",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "L",
      "name": "Low",
      "description": "2: not (VC:H or VI:H or VA:H)"
    },
    {
      "key": "M",
      "name": "Medium",
      "description": "1: not (VC:H and VI:H) and (VC:H or VI:H or VA:H)"
    },
    {
      "key": "H",
      "name": "High",
      "description": "0: VC:H and VI:H"
    }
  ]
}

Equivalence Set 4 (cvss:EQ4:1.0.0)

SC/SI/SA with 3 levels specified in Table 27

Value Definition
Low (L) 2: not (MSI:S or MSA:S) and not (SC:H or SI:H or SA:H)
Medium (M) 1: not (MSI:S or MSA:S) and (SC:H or SI:H or SA:H)
High (H) 0: MSI:S or MSA:S
Equivalence Set 4 (cvss:EQ4:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "EQ4",
  "version": "1.0.0",
  "name": "Equivalence Set 4",
  "description": "SC/SI/SA with 3 levels specified in Table 27",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "L",
      "name": "Low",
      "description": "2: not (MSI:S or MSA:S) and not (SC:H or SI:H or SA:H)"
    },
    {
      "key": "M",
      "name": "Medium",
      "description": "1: not (MSI:S or MSA:S) and (SC:H or SI:H or SA:H)"
    },
    {
      "key": "H",
      "name": "High",
      "description": "0: MSI:S or MSA:S"
    }
  ]
}

Equivalence Set 5 (cvss:EQ5:1.0.0)

E with 3 levels specified in Table 28

Value Definition
Low (L) 2: E:U
Medium (M) 1: E:P
High (H) 0: E:A
Equivalence Set 5 (cvss:EQ5:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "EQ5",
  "version": "1.0.0",
  "name": "Equivalence Set 5",
  "description": "E with 3 levels specified in Table 28",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "L",
      "name": "Low",
      "description": "2: E:U"
    },
    {
      "key": "M",
      "name": "Medium",
      "description": "1: E:P"
    },
    {
      "key": "H",
      "name": "High",
      "description": "0: E:A"
    }
  ]
}

Equivalence Set 6 (cvss:EQ6:1.0.0)

VC/VI/VA+CR/CI/CA with 2 levels specified in Table 29

Value Definition
Low (L) 1: not (CR:H and VC:H) and not (IR:H and VI:H) and not (AR:H and VA:H)
High (H) 0: (CR:H and VC:H) or (IR:H and VI:H) or (AR:H and VA:H)
Equivalence Set 6 (cvss:EQ6:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "EQ6",
  "version": "1.0.0",
  "name": "Equivalence Set 6",
  "description": "VC/VI/VA+CR/CI/CA with 2 levels specified in Table 29",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "L",
      "name": "Low",
      "description": "1: not (CR:H and VC:H) and not (IR:H and VI:H) and not (AR:H and VA:H)"
    },
    {
      "key": "H",
      "name": "High",
      "description": "0: (CR:H and VC:H) or (IR:H and VI:H) or (AR:H and VA:H)"
    }
  ]
}

We provide a detailed decision table for each equivalence set in the pages that follow:

CVSS v4 Qualitative Severity Rating

Finally, CVSS v4 provides a Qualitative Severity Rating that maps the six equivalence sets into a single qualitative rating (None, Low, Medium, High, Critical).

CVSS Qualitative Severity Rating Scale (cvss:CVSS:1.0.0)

The CVSS Qualitative Severity Rating Scale group.

Value Definition
None (N) None (0.0)
Low (L) Low (0.1-3.9)
Medium (M) Medium (4.0-6.9)
High (H) High (7.0-8.9)
Critical (C) Critical (9.0-10.0)
CVSS Qualitative Severity Rating Scale (cvss:CVSS:1.0.0) JSON Example
{
  "namespace": "cvss",
  "key": "CVSS",
  "version": "1.0.0",
  "name": "CVSS Qualitative Severity Rating Scale",
  "description": "The CVSS Qualitative Severity Rating Scale group.",
  "schemaVersion": "2.0.0",
  "values": [
    {
      "key": "N",
      "name": "None",
      "description": "None (0.0)"
    },
    {
      "key": "L",
      "name": "Low",
      "description": "Low (0.1-3.9)"
    },
    {
      "key": "M",
      "name": "Medium",
      "description": "Medium (4.0-6.9)"
    },
    {
      "key": "H",
      "name": "High",
      "description": "High (7.0-8.9)"
    },
    {
      "key": "C",
      "name": "Critical",
      "description": "Critical (9.0-10.0)"
    }
  ]
}

A full decision model for the CVSS v4 Qualitative Severity Rating can be found in the CVSS v4 Qualitative Severity Rating page.

What about CVSS v4 MacroVectors?

CVSS v4 MacroVectors are a new addition in CVSS v4 that provide a way to map the six equivalence sets into a single vector value that can be used to assign a CVSS v4 base score. In our implementation here, we simply model the MacroVector as another decision table that takes the individual equivalence set outcomes as inputs and provides the Qualitative Severity Rating as its outcome.

How are CVSS v4 scores handled?

We do not provide numerical CVSS v4 scores in this implementation. The CVSS v4 specification defines a lookup table and a complex algorithm to compute a score between 0.0 and 10.0 based on equivalence set values and the CVSS v4 vector.

In practice, many analysts convert numerical scores into qualitative severity ratings, such as None, Low, Medium, High, or Critical:

Numerical Score Qualitative Severity Rating
0.0 None
0.1 - 3.9 Low
4.0 - 6.9 Medium
7.0 - 8.9 High
9.0 - 10.0 Critical

One of our original concerns about CVSS v3—and still relevant in CVSS v4—was that numerical scores were often misused or misinterpreted, leading to poor prioritization decisions. To avoid this, we focus on mapping equivalence set values directly to qualitative severity ratings, which is the outcome many organizations actually care about.

Using SSVC, we can model the same assessment process that an analyst would use with CVSS v4, but entirely bypass the numerical score. The logic is identical: given a set of equivalence values, SSVC produces the same qualitative severity rating as the CVSS v4 Calculator. This demonstrates that numerical scores are not necessary for effective prioritization or decision-making.