Loading...
Skip to main content
Security

CVSS vs EPSS: Severity and Exploitation Are Not the Same Thing

CVSS and EPSS both score vulnerabilities, but they answer different questions. CVSS asks 'how bad could this be?' while EPSS asks 'will anyone exploit this?' This comparison shows where they agree, where they diverge, and why you need both.

Sudhir P.
Last updated
7 min read
CVSS × EPSS Priority Matrix: A 2-by-2 grid showing four vulnerability triage zones based on CVSS severity (horizontal axis) and EPSS exploitation probability (vertical axis). Approximately 81% of CVEs fall in the Low Priority quadrant, 11% in Plan & Monitor, 4% in Investigate Fast, and 4% in Patch Now (critical priority).

Two vulnerability scores. Same CVE. Completely different conclusions.

CVSS says: 9.8 — Critical. Patch immediately.

EPSS says: 0.02 — 2% chance anyone exploits this in the next 30 days. Routine maintenance.

Which one is right? Both. They're answering different questions. And understanding that difference is the key to not burning out your team on vulnerabilities that don't matter.

Key Takeaway

TL;DR: CVSS measures theoretical severity (how bad a vulnerability could be if exploited). EPSS measures exploitation probability (whether anyone will actually exploit it in the next 30 days). CVSS is static and based on technical characteristics. EPSS is dynamic and based on real-world threat intelligence. For prioritization, EPSS is the stronger signal. For compliance, CVSS still matters. For the full framework that combines both with CISA KEV, see the 3-Signal Triage Method. Need VEX and SSVC too? See the full Vulnerability Scoring Systems Glossary.

Side-by-Side Comparison

DimensionCVSSEPSS
Full nameCommon Vulnerability Scoring SystemExploit Prediction Scoring System
Maintained byFIRST.orgFIRST.org
Scale0.0–10.00.0–1.0 (probability)
Question answered"How bad could this be?""Will this be exploited in 30 days?"
Input dataAttack vector, complexity, privileges, impactThreat intel, PoC code, malware feeds, dark web
Update frequencyRarely (usually set once at disclosure)Daily (retrains on new intelligence)
TypeDeterministic (expert assessment)Probabilistic (machine learning)
Compliance useRequired by PCI-DSS, NIST, FedRAMPNot yet required (growing adoption)
Best forUnderstanding blast radiusDeciding what to patch first

The fundamental tension: CVSS tells you about the vulnerability. EPSS tells you about the threat landscape.

That "Update frequency" row is about the score itself, not the underlying advisory data feeding it — a separate question we measured directly. Across 48,162 CVEs and eight package ecosystems, the median gap between an NVD disclosure and the matching registry advisory is 0.01 days, and on some ecosystems the registry advisory usually arrives first — see our advisory-lag research. So a stale CVSS score is rarely a data-availability problem; it's that nobody revisited the number after EPSS moved.

Where They Agree

CVSS and EPSS align when a vulnerability is both severe and actively targeted:

CVE-2021-44228 (Log4Shell)
  CVSS: 10.0  — Maximum severity. RCE, no auth required.
  EPSS: 0.97  — Near-certain exploitation.
  Verdict: Both say PATCH NOW. No ambiguity.

CVE-2024-3094 (xz backdoor)
  CVSS: 10.0  — Supply chain RCE.
  EPSS: 0.91  — Active exploitation detected.
  Verdict: Both say PATCH NOW. No ambiguity.

When the world is on fire, both scoring systems agree. The problem is that the world is rarely on fire. Most of the time, CVSS and EPSS tell you very different things — and that's where the value lies. See Log4Shell's live record for how both scores read today, years after the fact.

Where They Diverge: 3 Real-World Examples

Example 1: The "Critical" Nobody Cares About

CVE-2023-XXXXX — XML External Entity in legacy parser
  CVSS: 9.1 (Critical)
  EPSS: 0.01

  CVSS reasoning: Remote, no auth, data exfiltration possible
  EPSS reasoning: No PoC code, no malware using it, niche library

  npm audit says: CRITICAL — patch immediately
  3-Signal Method says: Routine maintenance (EPSS < 0.1)

This is the most common divergence. CVSS sees the technical characteristics and rates it Critical. EPSS sees that nobody in the threat landscape is interested in exploiting it. Both are correct — it would be bad if exploited, but it almost certainly won't be.

Teams that prioritize by CVSS alone will burn a day on this while genuinely exploited vulnerabilities wait.

Example 2: The "Moderate" That's Being Weaponized

CVE-2024-YYYYY — Authentication bypass in middleware
  CVSS: 5.3 (Medium)
  EPSS: 0.74

  CVSS reasoning: Requires specific configuration, limited impact
  EPSS reasoning: Public PoC, active scanning detected, malware adopting it

  npm audit says: MODERATE — schedule for next quarter
  3-Signal Method says: Patch this week (EPSS 0.7+)

This is the dangerous divergence. CVSS underrates the urgency because the theoretical impact is moderate. EPSS overrides that because real attackers are using it right now. A team following CVSS-only prioritization would schedule this for next quarter while threat actors exploit it this week.

Example 3: The Moving Target

CVE-2025-ZZZZZ — Deserialization flaw in popular framework
  Day 1:   CVSS 8.1  |  EPSS 0.08  — High severity, low exploitation
  Day 14:  CVSS 8.1  |  EPSS 0.12  — PoC published on GitHub
  Day 21:  CVSS 8.1  |  EPSS 0.67  — Metasploit module released
  Day 28:  CVSS 8.1  |  EPSS 0.89  — Active scanning in the wild

  CVSS didn't change. EPSS tracked the escalation in real time.

This is the fundamental architectural difference. CVSS is a snapshot — set once, rarely updated. EPSS is a time series — recalculated daily as the threat landscape evolves. By day 28, CVSS still says the same thing it said on day 1. EPSS tells you the situation has changed dramatically.

When to Use Each Score

Use CVSS when you need to:

  • Meet compliance requirements (PCI-DSS, HIPAA, FedRAMP mandates)
  • Understand the type of risk (RCE vs info disclosure vs DoS)
  • Communicate severity to non-technical stakeholders
  • Set baseline SLAs ("all CVSS 9.0+ within 14 days")

Use EPSS when you need to:

  • Decide what to patch first within your CVSS-mandated window
  • Cut through alert fatigue (85% of CVEs have EPSS below 0.1)
  • Detect emerging threats before they become incidents
  • Justify deprioritizing high-CVSS findings that nobody's exploiting

Use both (the 3-Signal Triage Method) when you need to:

  • Build a repeatable prioritization process
  • Defend your patch decisions to auditors and leadership
  • Reduce patching effort by 70-80% without increasing risk

The Overlap Problem

Some vulnerability scanners are starting to show EPSS scores, but most still sort by CVSS. This creates a UX problem: your scanner screams "CRITICAL" for a CVSS 9.8 finding while burying a CVSS 4.0 that's actively being exploited.

Scanner output sorted by CVSS (typical):       Sorted by EPSS (better):
───────────────────────────────                 ──────────────────────────
1. CVE-A  CVSS 9.8  EPSS 0.01  ← noise        1. CVE-C  EPSS 0.74  CVSS 5.3  ← real threat
2. CVE-B  CVSS 8.1  EPSS 0.03  ← noise        2. CVE-D  EPSS 0.31  CVSS 7.2  ← elevated
3. CVE-C  CVSS 5.3  EPSS 0.74  ← REAL THREAT  3. CVE-B  EPSS 0.03  CVSS 8.1  ← routine
4. CVE-D  CVSS 7.2  EPSS 0.31  ← elevated     4. CVE-A  EPSS 0.01  CVSS 9.8  ← routine

The right-hand column is a better patch plan. The item your team should work on first (CVE-C) is buried at position 3 in the CVSS-sorted view. GeekWala sorts by EPSS by default, so this reordering happens automatically instead of requiring a spreadsheet.

Does CVSS predict exploitation?

No. CVSS describes blast radius — how bad a vulnerability could be if exploited — based on static technical characteristics (attack vector, attack complexity, impact on confidentiality/integrity/availability). It says nothing about whether anyone will actually exploit it. A 2015 CVE still reads CVSS 9.8 today regardless of whether it has been weaponized, ignored, or forgotten. If you need an answer to "will this be exploited?", you need EPSS — see What is EPSS? for how the model actually derives that probability.

Can I use EPSS without CVSS?

Operationally yes — EPSS alone will correctly prioritize the vulnerabilities most likely to be exploited, and research by the FIRST EPSS team shows it outperforms CVSS-only prioritization at catching real exploitation. But you lose the impact signal: a CVE with EPSS 0.9 on a developer workstation is a different risk than the same CVE on an internet-facing payment service. Keep CVSS for blast-radius framing, compliance reporting, and risk-appetite conversations with leadership; use EPSS to decide which ones to actually fix this week.

How do I combine CVSS severity with EPSS probability?

Triage by a 3-signal rule: CISA KEV → ship the fix today; EPSS ≥ 0.1 with a CVSS ≥ 7.0 and a reachable attack path → ship this week; CVSS-only critical in runtime code → schedule in the next sprint; everything else → normal patch cadence. The 3-Signal Triage Method walks through this in detail and shows how to turn both scores plus KEV membership into a single ordered queue your team can burn down.

Is EPSS replacing CVSS?

No. EPSS complements CVSS — it doesn't replace it. CVSS remains important for compliance, blast radius assessment, and communication. EPSS adds the exploitation dimension that CVSS was never designed to provide.

Can a vulnerability have high EPSS and low CVSS?

Yes, and it's more common than you'd expect. Authentication bypasses, SSRF, and path traversal flaws often score CVSS 4–6 (moderate impact) but attract high exploitation activity because they're easy to weaponize. Don't let a moderate CVSS score lull you into ignoring a high EPSS score.

Which score should I show my CISO?

Both, but frame them differently. CVSS answers "what's the worst case?" — useful for risk appetite discussions. EPSS answers "what's likely to happen?" — useful for resource allocation. The 3-Signal Triage Method gives you a framework to present both in context.

How accurate is EPSS compared to CVSS?

Research by the FIRST EPSS team (Jacobs et al.) shows that EPSS-based prioritization catches more actually-exploited vulnerabilities while generating fewer false positives than CVSS-based prioritization. In their analysis, at most about 6% of CVEs are ever exploited — the most generous of the published estimates, with stricter datasets nearer 1–2% — and EPSS is significantly better at identifying that slice.


See both scores for your dependencies — sorted by what matters.

Scan your dependencies now → — every finding shows CVSS severity alongside EPSS exploitation probability and CISA KEV status. No more guessing which "Critical" findings actually need emergency action. No account needed.