CVSS Guide: Metrics, Versions and Scoring Explained
What is CVSS?
The Common Vulnerability Scoring System (CVSS) is an open standard for assessing the severity of security vulnerabilities. Maintained by FIRST.org, it provides a consistent, vendor-neutral framework to communicate the characteristics and severity of software vulnerabilities.
A CVSS score ranges from 0.0 to 10.0, where higher values indicate greater severity. The score is derived from a set of metrics that capture how a vulnerability can be exploited and what impact it has.
CVSS is widely used by:
- Security vendors to rate CVEs in their advisories
- Patch management teams to prioritize remediation
- Compliance frameworks (PCI-DSS, HIPAA, ISO 27001) to assess risk
- Bug bounty programs to determine payout tiers
CVSS is a severity measure, not a risk measure. It does not account for your specific environment, asset value, or threat landscape — that is the job of your risk management process.
Severity Ratings
All CVSS versions map scores to a qualitative severity rating:
| Score | Severity | Typical Action |
|---|---|---|
| 0.0 | None | No action required |
| 0.1 – 3.9 | Low | Fix in next scheduled release |
| 4.0 – 6.9 | Medium | Fix within 60–90 days |
| 7.0 – 8.9 | High | Fix within 30 days |
| 9.0 – 10.0 | Critical | Fix immediately |
CVSS v2.0 does not have the Critical rating — scores 7.0–10.0 are all High.
CVSS v2.0
Released in 2007, CVSS v2.0 was the first widely adopted version. It uses a formula based on three groups of metrics.
Base Metrics
Base metrics capture the intrinsic characteristics of a vulnerability that are constant over time and across environments.
Attack Vector (AV)
How the vulnerability is exploited:
| Value | Name | Description |
|---|---|---|
| N | Network | Exploitable remotely over the network |
| A | Adjacent | Requires access to the local network (LAN, VPN) |
| L | Local | Requires local access (shell, physical) |
Access Complexity (AC)
How complex the attack is once the attacker has access:
| Value | Name | Description |
|---|---|---|
| L | Low | No special conditions required |
| M | Medium | Requires specific configuration or timing |
| H | High | Requires significant preparation or rare conditions |
Authentication (Au)
Number of times the attacker must authenticate:
| Value | Name | Description |
|---|---|---|
| N | None | No authentication required |
| S | Single | Must authenticate once |
| M | Multiple | Must authenticate multiple times |
Impact Metrics (C / I / A)
Confidentiality, Integrity, and Availability impact on the affected system:
| Value | Name | Description |
|---|---|---|
| N | None | No impact |
| P | Partial | Reduced performance or partial data exposure |
| C | Complete | Total loss of protection |
Temporal Metrics
Temporal metrics change over time as new information becomes available. They are optional and default to ND (Not Defined).
| Metric | Description |
|---|---|
| E Exploitability | Availability and reliability of exploit code |
| RL Remediation Level | Availability of a fix or workaround |
| RC Report Confidence | Degree of confidence in the existence of the vulnerability |
Environmental Metrics
Environmental metrics reflect the specific characteristics of an organization's environment. They are optional and default to ND.
| Metric | Description |
|---|---|
| CDP Collateral Damage Potential | Potential for physical damage or revenue loss |
| TD Target Distribution | Proportion of vulnerable systems |
| CR / IR / AR | Confidentiality, Integrity, Availability requirements |
Example: CVE-2017-5638 (Apache Struts RCE)
AV:N/AC:L/Au:N/C:C/I:C/A:C
Score: 10.0 — High
- AV:N — Exploitable over the network
- AC:L — No special conditions required
- Au:N — No authentication needed
- C:C / I:C / A:C — Complete loss of confidentiality, integrity, availability
CVSS v3.0 and v3.1
CVSS v3.0 was released in 2015, followed by v3.1 in 2019 (a clarification update with no formula changes). v3.x introduced significant improvements over v2:
- Scope metric to capture cross-component impact
- Privileges Required replaces Authentication
- User Interaction becomes an explicit metric
- Critical severity added (9.0–10.0)
- Network vs Adjacent distinction refined
Base Metrics
Attack Vector (AV)
| Value | Name | Description |
|---|---|---|
| N | Network | Remotely exploitable |
| A | Adjacent | Requires adjacent network access |
| L | Local | Requires local access |
| P | Physical | Requires physical access to device |
Attack Complexity (AC)
| Value | Name | Description |
|---|---|---|
| L | Low | No special conditions or preparation needed |
| H | High | Requires specific conditions (race condition, non-default config) |
Privileges Required (PR)
| Value | Name | Description |
|---|---|---|
| N | None | No privileges required |
| L | Low | Standard user privileges |
| H | High | Administrator/root privileges |
Note: When Scope is Changed, PR:L and PR:H scores are boosted because elevated-privilege exploits in a changed-scope context are more dangerous.
User Interaction (UI)
| Value | Name | Description |
|---|---|---|
| N | None | No user interaction required |
| R | Required | Requires a user to perform an action (click link, open file) |
Scope (S)
The Scope metric is new in v3.x and captures whether the vulnerability can impact components beyond the vulnerable one.
| Value | Name | Description |
|---|---|---|
| U | Unchanged | Impact is limited to the vulnerable component |
| C | Changed | Impact extends to other components (e.g., hypervisor escape, privilege escalation to OS) |
Impact Metrics (C / I / A)
| Value | Name | Description |
|---|---|---|
| N | None | No impact |
| L | Low | Partial or limited impact |
| H | High | Total or severe impact |
Temporal Metrics
Optional. Default: X (Not Defined).
| Metric | Values | Description |
|---|---|---|
| E Exploit Code Maturity | X, U, P, F, H | Maturity of available exploit code |
| RL Remediation Level | X, O, T, W, U | Availability of official fix, workaround |
| RC Report Confidence | X, U, R, C | Confidence in vulnerability existence |
Environmental Metrics
Optional. Allow organizations to tune the score for their specific context. Default: X.
| Metric | Description |
|---|---|
| CR / IR / AR | Confidentiality, Integrity, Availability requirements |
| MAV, MAC, MPR, MUI, MS, MC, MI, MA | Modified versions of all base metrics |
v3.0 vs v3.1 Differences
v3.1 introduced no formula changes. The update focused on:
- Clearer definitions for existing metrics (especially AV:A and AV:N)
- Improved guidance for scoring privilege escalation in scope-changed scenarios
- Better examples in the official specification
Example: CVE-2021-44228 (Log4Shell)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Score: 10.0 — Critical
- AV:N — Exploitable over the internet
- AC:L — Trivial to exploit, no special conditions
- PR:N — No authentication required
- UI:N — No user action needed
- S:C — Scope Changed — attacker escapes the JVM context
- C:H / I:H / A:H — Full system compromise possible
CVSS v4.0
Released in November 2023, CVSS v4.0 is a major redesign addressing fundamental limitations of v3.x:
- Splits impact into Vulnerable System and Subsequent System
- Adds Attack Requirements (AT) to model prerequisite conditions
- Introduces Supplemental metrics for additional context
- Introduces Threat metrics (replaces Temporal)
- Uses a lookup-table scoring model instead of a formula
Base Metrics
Attack Vector (AV)
Same values as v3.1: N, A, L, P
Attack Complexity (AC)
| Value | Name | Description |
|---|---|---|
| L | Low | No specialized conditions needed |
| H | High | Requires significant attacker effort or specific circumstances |
Attack Requirements (AT) — New in v4.0
Captures prerequisite conditions outside attacker control:
| Value | Name | Description |
|---|---|---|
| N | None | No specific deployment or configuration required |
| P | Present | Requires a specific system configuration or deployment condition |
Privileges Required (PR)
Same values as v3.1: N, L, H
User Interaction (UI)
| Value | Name | Description |
|---|---|---|
| N | None | No user interaction |
| P | Passive | User interaction required but passive (victim browses to page) |
| A | Active | User must explicitly take action (open file, approve dialog) |
Vulnerable System Impact (VC / VI / VA)
Impact on the directly vulnerable component:
| Value | Description |
|---|---|
| H | High — complete loss |
| L | Low — partial or limited |
| N | None |
Subsequent System Impact (SC / SI / SA)
Impact on other systems or components beyond the vulnerable one:
| Value | Description |
|---|---|
| H | High — significant impact on other systems |
| L | Low — limited impact on other systems |
| N | None |
This replaces the v3.x Scope concept with a more granular model.
Threat Metrics (replaces Temporal)
| Metric | Values | Description |
|---|---|---|
| E Exploit Maturity | X, A, P, U | State of available exploitation techniques |
- X — Not Defined (default)
- A — Attacked — active exploitation in the wild
- P — Proof-of-Concept — PoC exists but not widely exploited
- U — Unreported — no known exploitation
Environmental Metrics
Same concept as v3.x — modified base metrics + CIA requirements. Default: X.
Supplemental Metrics — New in v4.0
These do not affect the score but provide additional context:
| Metric | Description |
|---|---|
| S Safety | Impact on safety systems (physical harm potential) |
| AU Automatable | Can the exploit be automated at scale? |
| R Recovery | How easily can the system recover after exploitation? |
| V Value Density | How valuable are the assets at risk? |
| RE Response Effort | How difficult is the vulnerability to respond to? |
| U Provider Urgency | Vendor-assigned urgency classification |
Example: Hypothetical Network RCE in v4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
Score: 10.0 — Critical
Key Changes from v3.1
| Aspect | v3.1 | v4.0 |
|---|---|---|
| Impact model | Single scope (Unchanged/Changed) | Dual: Vulnerable + Subsequent System |
| User Interaction | None / Required | None / Passive / Active |
| Attack conditions | AC only | AC + AT (Attack Requirements) |
| Temporal → Threat | 3 metrics (E, RL, RC) | 1 metric (E) |
| Supplemental info | None | 6 supplemental metrics |
| Scoring method | Mathematical formula | Lookup table (macrovectors) |
Version Comparison
| Feature | v2.0 | v3.0/3.1 | v4.0 |
|---|---|---|---|
| Release year | 2007 | 2015/2019 | 2023 |
| Base metrics | 6 | 8 | 11 |
| Max severity label | High | Critical | Critical |
| Scope concept | No | Scope (U/C) | Dual system impact |
| Physical AV | No | Yes | Yes |
| User Interaction | No | Yes | Yes (3 values) |
| Attack Requirements | No | No | Yes |
| Supplemental metrics | No | No | Yes |
| Scoring method | Formula | Formula | Lookup table |
Metric Quick Reference
v3.1 Full Vector Structure
CVSS:3.1 / AV:_ / AC:_ / PR:_ / UI:_ / S:_ / C:_ / I:_ / A:_
Base metrics in order: Attack Vector, Attack Complexity, Privileges Required, User Interaction, Scope, Confidentiality, Integrity, Availability.
v4.0 Full Vector Structure
CVSS:4.0 / AV:_ / AC:_ / AT:_ / PR:_ / UI:_ / VC:_ / VI:_ / VA:_ / SC:_ / SI:_ / SA:_
CVSS Guru Services
Calculator
The CVSS Guru calculator supports all four versions simultaneously. As you select metrics, the score updates in real time using HTMX partial updates — no page reload.
Features:
- Live CVSS score calculation for v2.0, v3.0, v3.1, and v4.0
- Metric descriptions on hover
- Shareable link for any score
- Automatic value conversion when switching versions
How to use:
- Select the CVSS version tab (v2.0, v3.0, v3.1, v4.0)
- Click each metric option to set its value
- The score and severity update automatically
- Use Copy Link to share the exact configuration
Converter
Convert a CVSS vector string from one version to another. Useful when a vendor publishes a v3.1 score and you need a v4.0 equivalent, or when mapping historical v2.0 scores to modern ratings.
Input: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (9.8 Critical)
Output: 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
Conversion is a best-effort mapping. Metrics without a direct equivalent are set to their default value. The resulting score may differ from the original.
AI Scorer
Describe a vulnerability in plain language and let AI assign the CVSS v3.1 metrics. The AI explains its reasoning for each metric choice.
Example input:
"An unauthenticated attacker can send a specially crafted packet to port 443, triggering a heap overflow in the TLS parsing library. Successful exploitation gives the attacker code execution as the web server process."
AI output:
- AV:N — Exploitable over the network
- AC:L — No special conditions required
- PR:N — No authentication required
- UI:N — No user action needed
- S:U — Impact confined to the web server process
- C:H / I:H / A:H — Code execution leads to full compromise
Powered by OpenRouter with configurable model selection.
CVE Search
Search any CVE identifier to retrieve its official CVSS scores from the National Vulnerability Database (NVD). Results show all available versions (v2.0, v3.0/3.1, v4.0) with their vector strings.
From the results you can:
- Open in Calculator — load the vector into the interactive calculator
- Convert — send the vector to the Converter
- Copy — copy the vector string to clipboard
Results are cached for 24 hours to reduce NVD API load.
API
Programmatic access to all CVSS Guru functionality. See the API Reference for full documentation.
Quick example:
# Calculate a CVSS v3.1 score
curl -X POST https://cvss.guru/api/v1/calculate/3.1 \
-H "Content-Type: application/json" \
-d '{"AV":"N","AC":"L","PR":"N","UI":"N","S":"C","C":"H","I":"H","A":"H"}'
{
"version": "3.1",
"vector": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H",
"scores": {
"base": { "score": 10.0, "severity": "Critical" },
"temporal": null,
"environmental": null
}
}
Interpreting Scores
CVSS Is Not Risk
A CVSS score measures exploitability and impact of a vulnerability in isolation. It does not measure:
- How likely exploitation is in your environment
- Whether public exploit code exists (unless Temporal metrics are included)
- The value of the affected asset
- Whether a compensating control already mitigates the risk
Example: A Critical (10.0) vulnerability in a database server exposed to the internet is far more risky than the same vulnerability in a development machine with no network access — even though the CVSS score is identical.
Prioritization Strategy
A practical tiered approach:
- Critical (9.0–10.0): Patch within 24–72 hours. No exceptions for internet-facing systems.
- High (7.0–8.9): Patch within 2 weeks for production systems.
- Medium (4.0–6.9): Include in next sprint or scheduled maintenance.
- Low (0.1–3.9): Address opportunistically, may accept as residual risk.
- None (0.0): No action required.
Using Environmental Metrics
Always adjust CVSS scores with Environmental metrics for your context:
# A confidentiality-only asset (logs server): C:H doesn't matter much
# Set CR:L (Confidentiality Requirement: Low) to reduce the score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Base Score: 7.5 High
Modified with CR:L:
Environmental Score: 5.3 Medium
Real-World Examples
CVE-2021-44228 — Log4Shell
What it is: Remote code execution in Apache Log4j 2.x via JNDI lookup in log messages.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Score: 10.0 — Critical
Why 10.0: Network-exploitable, no authentication, no user interaction, scope changed (JVM → OS), full CIA impact.
CVE-2022-0847 — Dirty Pipe
What it is: Linux kernel privilege escalation via pipe buffer flag overwrite.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Score: 7.8 — High
Why 7.8: Requires local access (AV:L) and low privileges (PR:L), but leads to full compromise.
CVE-2023-23397 — Microsoft Outlook NTLM Relay
What it is: Zero-click NTLM hash theft via specially crafted email reminder.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Score: 9.8 — Critical
Why 9.8 not 10.0: Scope remains Unchanged (S:U), so the score is 9.8 instead of 10.0.
CVE-2021-21985 — VMware vCenter RCE
What it is: Remote code execution via vSphere Client without authentication.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Score: 9.8 — Critical