How to read a CVE and assess its risk

Wed Sep 09 2026

How to read a CVE and assess its risk

CVE-2021-44228 is a useful warning against treating a CVE as a verdict. The record identifies Log4Shell; your version, code path, reachability, and asset role determine the work.

A CVSS score is a severity signal, not your risk decision. To assess a CVE, verify the record, prove whether your product and version are exposed, read the vector, check exploitation signals, and then apply business context.

So the CVSS number gets the red badge because dashboards need a sorting mechanism. It doesn’t deserve to make the decision for you.

So you’ll move through that investigation in order: identity and state, applicability, CVSS, threat signals, and remediation.

In this article

What information a CVE provides

A CVE ID names a specific vulnerability record; the record’s state determines how much usable information it contains. The CVE Program’s process documentation defines the minimum record elements: the ID, a description, affected products and versions, and relevant references.

CVSS communicates severity through defined metrics. The National Vulnerability Database’s CVSS guidance puts the boundary plainly: “CVSS is not a measure of risk.”

And put that sentence above the dashboard because it can’t see your asset’s value or reachability.

But the industry keeps collapsing these systems into one vocabulary. That shortcut turns a severity label into a bad patch queue. A CVE identifies a specific vulnerability. CWE describes the weakness pattern behind it: SQL injection, for example, is a CWE category, while individual SQL-injection flaws in particular products receive separate CVE records. CVSS describes potential severity. NVD republishes published CVEs with analysis and applicability data. EPSS estimates exploitation likelihood as a probability from 0% to 100%. KEV membership signals active exploitation.

But those systems answer different questions. Your investigation connects the answers.

Start with the ID, but don’t overread it

Take CVE-2021-44228, the identifier associated with Log4Shell.

But don’t read the year as a discovery date; CVE records don’t promise that story. The year marks when the ID was reserved or the vulnerability was made public, and discovery may have happened earlier.

The format is:

CVE-YEAR-SEQUENCE

The CVE prefix identifies the system. And the final part is an arbitrary sequence number with four or more digits and no upper limit:

CVE-2026-1234
CVE-2026-1234567

Both fit the format.

The identifier points to the record. It carries no severity, exploitability, affected-version range, or business urgency. CVE-2021-44228 tells you which record to investigate; it doesn’t tell you whether a particular server is exposed.

And because scanners often present the ID and score together, they can look like a complete finding. Treat a scanner alert as a claim. Validate the detected package and installed version. Check the evidence path. Check the record state and vendor advisory. If the scanner can’t show why it matched the asset, mark the finding for verification rather than treating the score as proof.

Check the record’s state before trusting it

The CVE Program describes six process steps:

  1. Discover
  2. Report
  3. Request
  4. Reserve
  5. Submit
  6. Publish

You’ll usually see one of these record states: Reserved, Published, or Rejected.

A Reserved record means an ID has been assigned while disclosure work is being coordinated. Details may be absent or incomplete. Monitor the relevant vendor communication and recheck the record.

A Published record means the minimum public record is available; it still may require vendor verification. Look for a description, affected products and versions, and references to an advisory or technical report.

A Rejected record should no longer be used as a valid vulnerability record. It remains visible for traceability, so its presence in a database doesn’t make it actionable.

The diagram maps the fields; you’ll decode the vector later.

Confirm that your product and version are affected

Now compare the record with your inventory.

For CVE-2021-44228, the relevant component is Apache Log4j. That fact alone doesn’t establish equal exposure across every deployment. Compare the record with your inventory:

  1. Identify the vulnerable component. Is it Log4j itself, a bundled library, a product that embeds it, or a different package with a similar name?
  2. Match the version. Compare the installed version with the affected range.
  3. Find the fix or mitigation. The vendor advisory is the authority for product-specific scope, fixed releases, and mitigations.
  4. Check the application path. Does the application load the library on the vulnerable path?
  5. Check reachability. Can an attacker reach that path through the network, an authenticated interface, or only locally?

CPE applicability data can help locate potentially affected software. Treat a database match as a lead. Prove exposure with the installed product and version. Then check the configuration and reachable path.

For Log4Shell, verify whether an affected Log4j version is present, whether the vulnerable lookup path is used by the application, and whether an attacker can reach that application. “The package exists on disk” and “the vulnerable path is remotely exploitable in this deployment” are separate findings.

The boring work wins here: inventory, reachability, and ownership beat another hour of score-watching.

Read the CVSS score as a severity signal, not a verdict

This guide reflects the CVE, NVD, and FIRST guidance available on September 9, 2026. CVSS 4.0 is the current framework, but scanners and advisories still contain CVSS 3.x and legacy v2.0 data. FIRST’s CVSS 4.0 specification defines the framework; its v4.0 user guide explains how to apply it.

For CVSS 3.x and 4.0, the ratings are:

ScoreRating
0.0None
0.1–3.9Low
4.0–6.9Medium
7.0–8.9High
9.0–10.0Critical

CVSS v2.0 uses different labels. Low spans 0.0–3.9, Medium spans 4.0–6.9, and High spans 7.0–10.0, with no Critical or None tier. Don’t compare a v2.0 score of 7.0 with a v4.0 score of 7.0 as though they represent the same severity. Compare the version, vector, and assumptions first.

The CVSS 4.0 framework has four metric groups:

  • Base: intrinsic characteristics of the vulnerability.
  • Threat: time-sensitive factors, including exploit maturity.
  • Environmental: factors specific to your deployment, such as mitigations and system importance.
  • Supplemental: additional context that doesn’t change the final score.

The nomenclature tells you which groups were used:

  • CVSS-B: Base only
  • CVSS-BT: Base plus Threat
  • CVSS-BE: Base plus Environmental
  • CVSS-BTE: Base, Threat, and Environmental

NVD and many vendors publish Base scores. A headline score therefore often describes general severity under stated assumptions. Your complete risk requires more context.

The score is intended to be independent of the individual and organization evaluating it. A 10.0 score can describe a system you don’t run; a 7.5 can describe the public edge of your business. Treat the number as a severity signal, then verify exposure and consequence.

Decode the vector string instead of trusting the headline number

Open the vector before you accept the score.

The following is a parsing example, not the published v4.0 assessment for Log4Shell:

CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Read the metric/value pairs from left to right. The prefix identifies the CVSS version.

Exploitability metrics

  • AV:N (Attack Vector: Network). The attack occurs over a network. Other values are Adjacent, Local, and Physical.
  • AC:L — Attack Complexity: Low. AC describes exploit complexity and certain built-in defensive conditions. Mitigations specific to your deployment belong in Environmental.
  • AT:N — Attack Requirements: None. The vulnerable component has no additional prerequisite condition in the scored scenario.
  • PR:N — Privileges Required: None. The attacker needs no privileges before attempting exploitation.
  • UI:N — User Interaction: None. No user action is required.

Together, AV:N, PR:N, and UI:N describe network access without prior privileges or user action. They still don’t prove that your deployment is reachable.

Impact metrics

The next six values describe impact on two systems:

  • VC, VI, VA: confidentiality, integrity, and availability of the vulnerable system.
  • SC, SI, SA: confidentiality, integrity, and availability of a subsequent system.

Here, VC:H/VI:H/VA:H describes high impact across all three dimensions on the vulnerable system, while SC:N/SI:N/SA:N describes no impact on a subsequent system. If SC, SI, or SA changed to High, you’d investigate what downstream system could be affected and include that relationship in prioritization.

CVSS 4.0 removed the Scope metric and separated impact on vulnerable and subsequent systems. It split prerequisites out of Attack Complexity into Attack Requirements, and it made User Interaction more granular with None, Passive, and Active values.

A vendor may publish more than one Base score for the same vulnerability when platforms or deployment modes differ. Select the vector matching the affected product or platform. Otherwise, you’re comparing somebody else’s assumptions with your own system.

Why your vendor, NVD, and scanner may disagree

Two scores for one CVE don’t automatically mean one party made a mistake.

A vendor may have product-specific knowledge of supported configurations and attack paths. The database generally publishes Base metrics for published CVEs. When details needed for scoring are unavailable, it may assign worst-case metric values, which can produce a 10.0 Base score. That gives the database useful coverage. It doesn’t measure your local deployment.

Compare the records systematically:

  • CVSS version
  • Score type, such as CVSS-B or CVSS-BTE
  • Vector string
  • Scoring authority
  • Publication or update date
  • Product and deployment assumptions

Inspect the inputs instead of selecting the highest number by default. Disagreement is useful when it exposes an assumption you need to test.

A scanner can also disagree because its component match is generic or its vulnerability feed is stale. Verify the installed package, product advisory, record state, and update date before escalating the finding.

Turn severity into a prioritization decision

Use the applicability check to decide whether the finding belongs in your queue at all. Then answer three questions.

What would exploitation do here?

Consider the asset’s role and the data it handles. Then examine its trust relationships and the consequences of compromise. Environmental metrics can express some of this context, but CVSS doesn’t cover every business concern. Regulatory duties, customer impact, monetary loss, life safety, and reputational damage sit outside the framework.

This workflow can rank evidence; it can’t infer your asset criticality or prove reachability from a CVE record. You’ll need inventory, network, and business-owner evidence for those parts.

How likely is exploitation?

CVSS asks how severe exploitation could be. EPSS is commonly used as an exploitation-likelihood signal and is expressed as a probability from 0% to 100%. Use it as a likelihood signal, not as a deadline or a guarantee.

The KEV catalog is used as an active-exploitation signal. Treat KEV membership as a reason for immediate review regardless of the CVSS score; the action may be patching, isolation, or a documented compensating control.

What action reduces exposure fastest?

The answer may be an upgrade. It may also be disabling the vulnerable feature, restricting access, applying the vendor’s mitigation, or isolating the asset while remediation is prepared.

For the running example, if inventory confirms Log4j 2.x inside an internet-facing application and the vulnerable lookup path is reachable, treat the finding as exposed. If the library is present only in an isolated, unreachable test artifact, document that boundary and choose a different action.

The boring work—inventory, reachability, ownership—beats another hour of score-watching.

FindingPractical response
Affected, internet-exposed, actively exploitedBegin emergency remediation or isolate the system
Affected and high-impact, with no known exploitationAssign priority from exposure, asset criticality, and available mitigation; set the owner and review date
Not affected or outside the vulnerable version rangeDocument the evidence and close the finding
Reserved recordMonitor the CNA or vendor advisory and recheck
Published but missing affected versions, references, or description detailsVerify scope with the vendor and record the uncertainty
Rejected CVEDon’t use it as a valid vulnerability record

There’s no universal patch deadline hidden inside a CVSS score. The CVE is the same. The exposure and consequences are not.

Use the references to verify the next action

Build an evidence chain rather than another score:

  1. The CVE record confirms the identifier and record state.
  2. The database enrichment provides CVSS, weakness, and product-applicability context.
  3. The vendor advisory supplies product-specific impact, fixed versions, and mitigations.
  4. The FIRST specification or user guide helps validate the vector.
  5. The NVD CVSS 4.0 calculator lets you reproduce or test a score.

A calculator checks the scoring result and shows how changing metrics affects severity. It doesn’t know that a server supports payroll, sits behind a gateway, or has an owner who is away until Monday.

Record the affected assets and version evidence. Add the exposure evidence and advisory consulted. Record the CVSS version and vector, exploitation signals, chosen mitigation, owner, and remediation state. Another analyst should be able to review the decision without reconstructing your investigation.

The CVE reading checklist

  1. Identity: Record the CVE ID, the year the ID was reserved or the vulnerability was made public, and the record state.
  2. Applicability: Confirm the affected asset, installed version, configuration, and exposure evidence.
  3. Authority: Read the vendor advisory and identify the fixed release or mitigation.
  4. Severity: Record the CVSS version, score, vector, and nomenclature.
  5. Threat: Check the EPSS signal and KEV status.
  6. Action: Assign an owner, remediation or compensating control, review date, and current status.

If you can’t name the affected asset, reachable path, authoritative fix, owner, and next action, you have a CVE record—not a risk decision.