Cybersecurity

What is CVSS and how is it calculated?

Learn how the Common Vulnerability Scoring System calculates severity scores for vulnerabilities and how to interpret CVSS ratings.

By Inventive HQ Team

CVSS (the Common Vulnerability Scoring System) is an open framework, maintained by FIRST.org, that rates the severity of a software vulnerability as a number from 0.0 to 10.0. The score is calculated from a fixed set of Base metrics — not assigned by opinion — describing how a flaw is exploited (Attack Vector, Attack Complexity, Privileges Required, User Interaction) and what it damages (Scope, plus Confidentiality, Integrity, and Availability impact). Those choices compress into a Base score and a qualitative band: None (0.0), Low (0.1–3.9), Medium (4.0–6.9), High (7.0–8.9), or Critical (9.0–10.0). A remote, unauthenticated remote-code-execution bug lands at 9.8–10.0; a local privilege-escalation that first needs a valid user account typically lands around 7–8.

That's the summary an AI Overview will hand you. What it can't do is let you turn the dials and watch the number move — which is the only way the formula stops being abstract. The calculator below is the real CVSS v3.1 engine: change any metric and the score, severity band, and vector string update live. Underneath it you'll find the exact metric definitions, two worked examples with their vector strings, a remediation-SLA table, and how v4.0 changes the math.

Loading interactive tool...

How the score is built: two sub-scores, one number

A CVSS v3.1 Base score is not one calculation — it is two sub-scores combined. Exploitability captures how easy the vulnerability is to reach and trigger. Impact captures how much damage a successful exploit does. The Scope metric decides how those two are weighted together. Understanding this split is what separates people who read CVSS scores from people who can predict them.

How a CVSS v3.1 Base score is assembled from Exploitability and Impact metrics Four exploitability metrics and three impact metrics feed two sub-scores that combine, weighted by Scope, into a single 0-to-10 Base score and severity band. Anatomy of a CVSS v3.1 Base score Exploitability How easy is it to trigger? Attack Vector (AV) Attack Complexity (AC) Privileges Required (PR) User Interaction (UI) Impact (CIA) How bad is the damage? Confidentiality (C) Integrity (I) Availability (A) Scope (S) — combines both Base score 9.8

Severity band (0.0 – 10.0) None/Low Medium 4.0–6.9 High 7.0–8.9 Critical 9.0–10.0

Exploitability × Impact, weighted by Scope, rounded up → one number, one band

CVSS was first developed under the U.S. National Infrastructure Advisory Council (NIAC) and released in 2005. Ownership and maintenance passed to FIRST.org (the Forum of Incident Response and Security Teams), which publishes the specification and the official calculator. A common misconception is that NIST created CVSS — it did not. NIST runs the National Vulnerability Database (NVD), which applies CVSS scores to published CVEs, but the standard itself belongs to FIRST. CVSS v3.1 was released in June 2019 and remains the most widely used version for CVE scoring; CVSS v4.0 arrived in November 2023 and adoption is ongoing.

The CVSS severity scale — and what each band should mean for your team

The number only becomes useful when it maps to an action. The bands below are the CVSS v3.x qualitative ratings, paired with the response expectations most vulnerability-management programs codify into SLAs.

ScoreSeverityWhat it signalsTypical remediation SLA
0.0NoneNo exploitable impactNo action required
0.1 – 3.9LowNarrow conditions, limited blast radius1–6 months / next maintenance window
4.0 – 6.9MediumMeaningful impact under specific conditions1–3 months
7.0 – 8.9HighLikely to cause real damage if exploited1–4 weeks
9.0 – 10.0CriticalUrgent; often remote and unauthenticated1–7 days (hours if actively exploited)

The SLA column is convention, not part of the CVSS spec — but tying each band to a deadline is exactly what turns a score into a program. Which number matters most to you? For most teams the Critical and High rows drive nearly all emergency patching, while Medium and Low get batched into regular cycles.

Advertisement

The eight Base metrics (CVSS v3.1) explained

CVSS v3.1 calculates the Base score from eight metrics that describe the intrinsic characteristics of a vulnerability — independent of your environment or any active threat.

Attack Vector (AV) — how the vulnerability is reached.

  • Network (N): exploitable remotely across the internet. Highest weight.
  • Adjacent (A): requires access to the same physical or logical network (e.g., same LAN, Bluetooth range).
  • Local (L): requires local access — a shell, a session, or the ability to run code on the host.
  • Physical (P): requires physically touching the device. Lowest weight.

Attack Complexity (AC) — conditions outside the attacker's control.

  • Low (L): repeatable exploitation with no special conditions.
  • High (H): requires specific configuration, timing, or a race the attacker must win.

Privileges Required (PR) — what access the attacker needs first.

  • None (N): unauthenticated.
  • Low (L): a normal user account.
  • High (H): administrative or root-level access.

User Interaction (UI) — whether a victim must act.

  • None (N): fully self-contained.
  • Required (R): someone must click, open, or run something.

Scope (S) — whether the impact stays contained.

  • Unchanged (U): impact is limited to the vulnerable component's own security authority.
  • Changed (C): the exploit breaks out — for example, a sandbox or container escape that affects the host. Scope Changed raises the ceiling of the score.

Confidentiality (C), Integrity (I), and Availability (A) each take None (N), Low (L), or High (H), measuring how much data disclosure, data tampering, or downtime a successful exploit causes.

Worked examples with their vector strings

Numbers stick better when you can see the exact inputs. Both of these are reproducible — paste the vector string into the calculator above and you'll get the same score.

Example 1 — Unauthenticated remote code execution in a web app

  • Attack Vector: Network · Attack Complexity: Low · Privileges Required: None · User Interaction: None
  • Scope: Unchanged (code runs within the app's own security context)
  • Confidentiality: High · Integrity: High · Availability: High

Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H9.8 (Critical)

This is the classic 9.8 — the profile of a wormable, internet-reachable bug. Now change one dial: if that same RCE escapes its component and compromises the host (Scope: Changed), the vector CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H scores 10.0. That single Scope flip is why some Criticals are "9.8" and others are the maximum.

Example 2 — Local privilege escalation

  • Attack Vector: Local · Attack Complexity: Low · Privileges Required: Low · User Interaction: None
  • Scope: Changed · Confidentiality: High · Integrity: High · Availability: High

Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H8.8 (High)

Same devastating impact, but because the attacker must already have a foothold (Local vector, a user account), the exploitability sub-score drops and the total falls into High rather than Critical.

Temporal (Threat) and Environmental metrics

The Base score is deliberately static. Two optional metric groups adjust it for reality — and most teams ignore them, which is a mistake.

Temporal metrics (renamed Threat metrics in v4.0) reflect the current state of the threat:

  • Exploit Code Maturity / Exploit Maturity: is there a working, weaponized exploit in the wild?
  • Remediation Level: is there an official fix, a workaround, or nothing yet?
  • Report Confidence: how well-confirmed is the vulnerability?

Environmental metrics re-weight the score for your environment:

  • Security Requirements (CR / IR / AR): how much do you value confidentiality, integrity, and availability on the affected asset?
  • Modified Base metrics: override any Base metric to reflect your specific deployment (e.g., a network-exploitable bug that your firewall makes unreachable).

A Base 7.5 on a hardened, internet-isolated system with no known exploit is a very different priority than the same 7.5 on a public server with a Metasploit module. The Environmental group is where CVSS finally accounts for context — but only if you use it.

CVSS v3.1 vs v4.0: what actually changed

CVSS v4.0 is not a tweak — it restructures how impact is measured and how scores are named. The table below covers the differences that change day-to-day interpretation.

AspectCVSS v3.1CVSS v4.0
Impact modelingSingle Scope metric (Unchanged/Changed)Explicit Vulnerable System (VC/VI/VA) and Subsequent System (SC/SI/SA) impact — Scope is retired
Exploitability inputsAV, AC, PR, UIAdds Attack Requirements (AT) alongside the four v3.1 metrics
Time-sensitive group"Temporal" (3 metrics)Renamed Threat; simplified to Exploit Maturity
Supplemental contextNoneNew Supplemental metrics: Safety, Automatable, Recovery, Value Density, Response Effort, Provider Urgency
Score namingBase / Temporal / EnvironmentalNamed types: CVSS-B, CVSS-BT, CVSS-BE, CVSS-BTE to discourage quoting Base alone
Design intentBroad severity signalBetter fidelity for OT/ICS, safety, and real exploitability

Which should you use? For scoring new CVEs and any greenfield program, prefer v4.0 — it produces sharper, less clustered scores and its Supplemental metrics (especially Safety) matter for industrial and IoT systems. In practice you'll encounter v3.1 everywhere for years because NVD's historical corpus is scored with it, so vulnerability-management tooling must read both. The good news: the mental model — exploitability × impact, adjusted for threat and environment — carries straight across.

How organizations use CVSS in practice

CVSS drives three concrete decisions in a mature program:

  • Prioritization and SLAs. Critical and High findings jump the queue; the severity band sets the remediation deadline (see the SLA table above).
  • Compliance. PCI-DSS, HIPAA-aligned programs, and many contractual requirements reference CVSS thresholds when defining "must-fix" vulnerabilities.
  • Risk aggregation. CVSS feeds broader risk models alongside asset criticality and threat intelligence — it is an input, never the whole answer.

The limitations you have to design around

CVSS is a severity model, not a risk model, and treating the Base score as risk is the single most common mistake.

  • No business context. A Base score knows nothing about which of your systems is a crown-jewel database and which is a throwaway VM.
  • Static by design. The Base score of a five-year-old, mass-exploited bug looks identical to a fresh one with no known exploit — unless you apply Threat/Temporal metrics.
  • Exploit likelihood is missing from the Base score. Pair CVSS with EPSS (the Exploit Prediction Scoring System) and the CISA KEV catalog to know what is actually being exploited right now.
  • Scoring is judgment-laden. Two analysts can produce different vectors for the same bug; always publish the vector string so the reasoning is auditable.

The practical fix: use CVSS to establish intrinsic severity, then layer EPSS, KEV, and your own asset criticality on top before you decide patch order. That is how a Medium on an internet-facing payment gateway correctly beats a Critical on an air-gapped lab box.

Conclusion

CVSS gives the industry a shared, reproducible language for vulnerability severity: eight Base metrics compress into a single 0.0–10.0 number and a severity band, and the vector string makes every score auditable. It is maintained by FIRST.org, applied at scale by NIST's NVD, and evolving through v4.0 toward better fidelity for real-world exploitability and safety. Use the calculator above to build intuition for how the dials move the number — then remember the discipline the score can't supply for you: CVSS ranks severity, but risk is severity plus exploitability plus what the asset is worth to your business.

Frequently Asked Questions

What is CVSS in simple terms?

CVSS (the Common Vulnerability Scoring System) is an open framework that rates how severe a software vulnerability is on a scale of 0.0 to 10.0. The number is calculated from a fixed set of metrics describing how a flaw is exploited and what it damages, so different vendors and teams can talk about severity in the same language instead of each inventing their own "high/medium/low" ratings.

Who created and maintains CVSS?

CVSS was first developed under the U.S. National Infrastructure Advisory Council (NIAC) and released in 2005. Since then it has been owned and maintained by FIRST.org (the Forum of Incident Response and Security Teams). NIST does not own CVSS — it runs the National Vulnerability Database (NVD), which publishes CVSS scores for CVEs and hosts a calculator, but the standard itself belongs to FIRST.

How is a CVSS score actually calculated?

The Base score comes from two sub-scores. Exploitability is derived from Attack Vector, Attack Complexity, Privileges Required, and User Interaction. Impact is derived from Confidentiality, Integrity, and Availability. The Scope metric determines how those combine. The formula multiplies and rounds the result up to one decimal place, producing a value from 0.0 to 10.0 — it is a fixed equation, not a subjective judgment.

What are the CVSS severity ratings?

CVSS v3.x maps the number to qualitative bands: None (0.0), Low (0.1–3.9), Medium (4.0–6.9), High (7.0–8.9), and Critical (9.0–10.0). These bands let teams triage quickly — a Critical demands action in days, while a Low can wait for a scheduled maintenance window.

What is a CVSS vector string?

A vector string is the full list of metric choices behind a score, written as one line — for example CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, which scores 9.8. It lets anyone reproduce the exact score and see the assumptions behind it, rather than trusting a bare number.

Why do CVSS scores end in .8 like 9.8?

The v3.1 formula rounds the final value UP to one decimal place, and the metric weights are specific decimals, so common metric combinations converge on recognizable numbers. A remote, unauthenticated, no-interaction RCE that only affects its own component (Scope Unchanged) lands on 9.8; flip Scope to Changed and the same impacts push it to 10.0.

What is the difference between CVSS v3.1 and v4.0?

v4.0 (2023) drops the single Scope metric and instead scores impact on the Vulnerable System and any Subsequent System separately, adds an Attack Requirements metric, renames Temporal metrics to Threat metrics (now just Exploit Maturity), and introduces Supplemental metrics like Safety and Automatable. It also formalizes named score types — CVSS-B, CVSS-BT, CVSS-BTE — to stop people quoting a bare Base score as if it were the whole picture.

Should I patch based on CVSS score alone?

No. The Base score measures intrinsic technical severity, not your risk. A Critical CVSS bug on an isolated test box may matter less than a Medium on an internet-facing payment system. Combine CVSS with real-world signals — whether an exploit exists (CISA KEV, EPSS), asset criticality, and exposure — before deciding patch order.

Is a CVSS 10.0 the worst possible score?

Yes. 10.0 is the maximum. It requires the worst value on the exploitability metrics (network attack vector, low complexity, no privileges, no user interaction), a changed Scope, and high impact to confidentiality, integrity, and availability — the profile of an unauthenticated remote takeover that also breaks out of the vulnerable component.

cvssvulnerabilityscoringseverityrisk-assessment