Guide
Guide · Vulnerability managementUpdated September 26, 2026

How to Prioritize Vulnerabilities in Kubernetes: CVSS, EPSS, KEV and Runtime Evidence

A practical way to turn scanner findings into a work order: what CVSS, EPSS and CISA KEV each measure, the questions only your cluster can answer, a decision ladder, and how to record the findings you defer.

Short answer

Prioritise Kubernetes vulnerabilities by fixing first the findings that are known or likely to be exploited, from CISA KEV or a high EPSS probability, and that are loaded or exposed in your running workloads, then order the rest by CVSS severity, privileges and fix availability, and record every deferral with its evidence and a review date.

01

Why sorting by CVSS fails as a work order

Run a scanner across a cluster and it returns every package with a known CVE in every image. The one number on every row is the CVSS base score, so it becomes the sort key. The CVSS v4.0 specification is precise about what that number is: the base score reflects the intrinsic characteristics of a vulnerability, which are constant over time and across environments, and assumes the reasonable worst-case impact across different deployments. It rates the vulnerability, not your cluster.

Used as a work order, it goes wrong in three ways. It does not move when attackers start exploiting a vulnerability. It gives the same score to a library the application calls on every request and to one that sits unused in a base image layer. And a large result set has many findings with the same score, so the sort does not tell a team which of them to start with.

CVSS itself anticipates this. Its Threat metrics adjust the score for exploit maturity and its Environmental metrics for your own deployment, and the specification makes applying them the consumer's responsibility. Public feeds such as the National Vulnerability Database typically publish only the base score. The answer is not to discard CVSS but to demote it: it becomes one input, answered after exploitation and after the facts of your own environment.

02

What CVSS, EPSS and KEV each tell you

The three public signals are often shown side by side as if they were three scales for the same thing. They answer different questions, and all three are identical for every organisation that runs the affected software.

  • CVSS base score, 0.0 to 10.0: how severe the vulnerability would be if it were exploited, under a reasonable worst-case assumption. It is a severity rating, not a likelihood and not a measure of your exposure.
  • EPSS probability, 0 to 1: FIRST's model estimate that exploitation activity for a CVE will be observed in the wild over the next 30 days, recalculated daily for published CVEs. FIRST treats the probability as the model's primary output; the percentile is a relative ranking of that probability against all scored CVEs. Because exploitation is rare, most probabilities look small, and a value that sounds low can still rank near the top.
  • CISA KEV: the Known Exploited Vulnerabilities catalog lists vulnerabilities that have a CVE ID, reliable evidence of active exploitation in the wild, and a clear remediation action such as a vendor update. It is a confirmation, not a forecast. Attempted exploitation counts; scanning, security research and public proof-of-concept code do not. Each entry records the date it was added, a remediation due date for US federal agencies, and whether use in ransomware campaigns is known.

03

Where KEV due dates come from

The KEV catalog was created under Binding Operational Directive 22-01, issued in November 2021. It required US federal civilian agencies to remediate catalogued vulnerabilities within two weeks, or within six months for CVEs assigned before 2021, and those due dates are where the catalog's reputation as a deadline list comes from.

On 10 June 2026 CISA revoked BOD 22-01 and replaced it with BOD 26-04, Prioritizing Security Updates Based on Risk. The new directive keeps the KEV criteria but no longer sets a timeline from catalog membership alone. It asks four questions: is the asset publicly exposed, is the CVE in KEV, can an adversary automate every step of exploitation, and does exploitation give partial or total control. The shortest timeline is three calendar days plus a forensic triage for signs of compromise, for KEV vulnerabilities that give total control and are either publicly exposed or automatable. At the other end, a vulnerability that is not exposed, not in KEV and not automatable is fixed at the asset's next scheduled upgrade. CISA publishes the KEV, automation and technical impact answers per CVE; exposure is for each agency to establish.

The directive binds only federal agencies, but its structure is a useful template for anyone: it combines a public exploitation signal with facts about your own asset. It does not use EPSS, and it does not ask whether the vulnerable code is loaded or executed. Those are the gaps the rest of this guide fills.

04

The questions only your environment can answer

Public signals are the same for everyone. What turns them into a decision is a short list of facts about where the vulnerable component actually runs. Each can be answered with evidence rather than opinion, and each can be wrong in a known way.

  • Does it run? An image in a registry that no pod runs is inventory, not exposure. Map findings to the clusters, namespaces and workloads that are running the image today, by digest rather than by tag.
  • Is it loaded? For a library, whether any process in the workload mapped it into memory. A package that is installed but never loaded cannot be reached through the application, though it remains usable by anyone who already has code execution in the container.
  • Is the vulnerable code executed? Stronger than loaded: the vulnerable function, or a caller of it, ran. It is the most specific evidence and the most expensive to collect, and not every sensor can observe it for every language and runtime.
  • Is it exposed? Whether the workload accepts traffic from the internet or from untrusted tenants, through a LoadBalancer or NodePort Service, an Ingress or Gateway route, or a listener reachable from outside the cluster. Internal-only lowers the priority; it does not remove it, because internal services are how attackers move laterally.
  • What privileges does it hold? A container that runs as root or privileged, shares host namespaces, mounts host paths, or uses a service account that can create pods or read Secrets turns a partial compromise into a node or cluster compromise. It extends BOD 26-04's technical impact question from the vulnerable software to what that software can reach.
  • Is there a fix? A fixed upstream version, a patched base image, or only a configuration mitigation. When there is no fix, the decision is about mitigation and monitoring, not about patching sooner.

05

Recording accepted risk: VEX, evidence and a review date

Anything below the top of the ladder is deferred, and a deferral that is not written down is rediscovered by every scan and argued about again. VEX, the Vulnerability Exploitability eXchange, is the standard shape for that record. A VEX statement gives a product's status for one vulnerability: not affected, affected, fixed or under investigation. CISA's minimum requirements say a not-affected statement should carry a justification, and must carry an impact statement when it has none, and that an affected statement must carry an action statement describing the remediation or mitigation.

CISA defines five justifications for not affected: component not present, vulnerable code not present, vulnerable code cannot be controlled by adversary, vulnerable code not in execute path, and inline mitigations already exist. Choose the one the evidence supports. CISA's definition of not in execute path is that the vulnerable code can never be executed in the context of the application, and it warns against assuming a single path of execution. Runtime observation that a library was never loaded over a representative window is strong support for that claim, but it is evidence from a window, not a proof, and the impact statement should say so.

Each deferral should carry the following, whether it is published as VEX or kept in an internal tracker.

  • The status and justification, or, for a finding that is affected but deferred, the reason and the compensating control as the action statement.
  • The evidence: the observation window, the workloads and image digests it covered, what was or was not seen, and any static analysis that supports it.
  • An owner and a review date. VEX statements carry timestamps but no expiry, so set one in your own tracking, and review earlier if the image changes, the CVE enters KEV, or its EPSS probability rises.

06

Rolling it out: start with what you would patch anyway

Changing the order of a security queue is a policy change, and it is easier to agree on when the first version makes nothing worse. Keep every existing obligation, such as KEV deadlines, contractual or compliance remediation times, and critical findings on internet-facing services, and at first use the new signals only to order work within those obligations and to pull forward what the old sort missed.

  • Start from running workloads, so each finding maps to something that runs rather than to everything in the registry.
  • Add KEV and EPSS to every finding. Both are free: CISA publishes the catalog as CSV and JSON, and FIRST publishes EPSS scores daily through CSV downloads and an API.
  • Add exposure and privilege from the Kubernetes API: Services, Ingresses and Gateway routes, pod security contexts, and service account bindings.
  • Add runtime evidence last, and use it first to raise priority, moving findings that are loaded and exposed up the queue, rather than to suppress anything. Defer on the basis of not loaded only once the team has seen enough evidence to trust the sensor's coverage.
  • Review the ladder on a fixed schedule against what happened: which deferred findings later entered KEV, which urgent ones turned out not to matter, and whether the thresholds still fit.

07

Where this approach breaks

Each signal fails in a known way, and a ladder built from them inherits every failure. These are the ones to keep in view.

  • EPSS is not environment-aware: FIRST states that it is not a complete risk score and does not account for compensating controls or anything specific to your environment. A low probability for a CVE on an internet-facing service is still a forecast about the internet at large, not about your service.
  • KEV lags and confirms rather than predicts: an entry needs reliable evidence of exploitation and a clear remediation action, so a vulnerability can be exploited before it qualifies. Absence from the catalog means CISA has not confirmed exploitation, not that none has happened.
  • No observed execution is not proof of safety: observation covers a window and the traffic in it. Scheduled jobs, error handling and rarely used endpoints may not run, an attacker can divert execution, and a library the application never loads is still usable by someone with a shell in the container.
  • Kernel and node vulnerabilities sit below the application: whether a workload loaded a library says nothing about a kernel or container runtime CVE. Judge those by node privileges and exposed interfaces, and fix them through node image updates.
  • The inputs change: EPSS is recalculated daily, KEV grows, and images are rebuilt. A decision made on last month's data needs a review date, not a permanent suppression.

08

How Primod approaches it

Primod supplies the environment-specific half of this ladder with runtime evidence. A per-node eBPF sensor records library loads, execution paths, process lineage and network activity, and the platform correlates them with CVE data and cloud posture, so a finding shows the affected workloads, available fix information, and, where it was captured, the call stack behind a reachable finding. Missing execution evidence is shown as missing, not as safe: runtime evidence informs your remediation policy alongside severity, exposure and exploitation data, and does not replace it.

09

At a glance: a decision ladder

The table puts the signals in order. Read it from the top and stop at the first row that matches. The actions are relative, not deadlines: map them to the timeframes your own policy sets. Rows that depend on runtime evidence assume a sensor; without one, treat a component that is present in a running workload as loaded.

A decision ladder for Kubernetes vulnerabilities: public exploitation signal, environment evidence, action and what to record
Public signalWhat your environment showsActionWhat to record
In KEVLoaded or executed in a running workload, or exposed to untrusted trafficFix or mitigate now, and check the workload for signs of compromiseRemediation ticket with an owner; result of the compromise check
In KEVPresent in a running workload, not observed loadedFix on a short, dated deadline; do not suppressVEX affected, with the fix as the action statement
EPSS probability above your thresholdExposed, and loaded or executedFix this sprintRemediation ticket; EPSS value and date at triage
EPSS probability above your thresholdInternal only, or not observed loadedFix at the next scheduled image updateTicket with a target release; review if the EPSS probability rises or the CVE enters KEV
High or critical CVSS, not in KEV, low EPSSLoaded and exposed, or running with elevated privilegesFix at the next scheduled update, ahead of the rest of the backlogTicket; the exposure or privilege that raised it
Any, not in KEVNot observed loaded over a representative window, not exposedDefer to routine base image updatesVEX not affected (vulnerable code not in execute path), or affected with a deferral, plus the observation window and a review date
AnyNo fix availableMitigate: remove the package, restrict network paths, drop privileges; monitorVEX affected, with the mitigation as the action statement; review when a fix ships
Kernel, container runtime or node imageDepends on node privileges and exposed interfaces, not on application loadsHandle through node image updates; faster when in KEVNode image version and rollout date

Frequently asked questions

Should I use the EPSS probability or the percentile?
Use the probability for thresholds and decisions; FIRST describes it as the model's primary output, the estimated chance that exploitation activity will be observed in the next 30 days. The percentile only tells you how that probability ranks against every other scored CVE, which is useful for comparison but shifts as the population of scores changes.
Is KEV only relevant to US federal agencies?
No. The remediation deadlines bind US federal civilian agencies, but the catalog is public and CISA says organisations should use it as an input to their own vulnerability prioritisation framework. It is the most direct public evidence that a vulnerability has been exploited in the wild.
What replaced BOD 22-01?
BOD 26-04, Prioritizing Security Updates Based on Risk, issued by CISA on 10 June 2026. It keeps the KEV criteria but sets remediation timelines from four factors: public exposure, KEV membership, whether exploitation can be automated, and whether it gives partial or total control of the asset.
Can I ignore vulnerabilities in libraries that are never loaded?
Defer them rather than ignore them. A library that was not loaded during a representative observation window is a strong reason to fix it later, but it is not proof that it can never run. Record the evidence and a review date, and keep KEV-listed findings on a dated fix plan even when they were not observed loaded.
Does CVSS v4.0 solve prioritisation on its own?
Not by itself. CVSS v4.0 defines Threat and Environmental metrics that adjust the score for exploit maturity and for your deployment, but applying them is the consumer's responsibility, and public feeds typically publish only the base score. You still need exploitation data and facts about your own workloads.

Sources and references

  1. Common Vulnerability Scoring System (CVSS) v4.0 Specification

    FIRST

  2. EPSS Frequently Asked Questions

    FIRST

  3. Known Exploited Vulnerabilities Catalog

    CISA

  4. Reducing the Significant Risk of Known Exploited Vulnerabilities (KEV criteria)

    CISA

  5. BOD 26-04: Prioritizing Security Updates Based on Risk

    CISA, June 2026

  6. BOD 22-01: Reducing the Significant Risk of Known Exploited Vulnerabilities (Revoked)

    CISA, November 2021

  7. Vulnerability Exploitability eXchange (VEX) Status Justifications

    CISA, June 2022

  8. Minimum Requirements for Vulnerability Exploitability eXchange (VEX)

    CISA, April 2023

  9. Stakeholder-Specific Vulnerability Categorization (SSVC)

    CISA

Keep reading

From the engineering blog

All articles