Alye / Resources
Guide

How to prioritize CVEs: fix what's reachable first

By the Alye team · Updated

Short answer
Don't sort by CVSS score alone. Fix first the vulnerabilities that are known to be exploited, sit on something the internet can reach, and run with access to sensitive data. That is usually a small fraction of the total, and it removes most of the real risk.

Why CVSS alone isn't enough

A CVSS score describes how bad a vulnerability could be in general. It doesn't know whether the package is in a production image, whether that image runs on an internet-facing server, or whether the server's role can read anything valuable. Thousands of CVEs score 7 or higher, so a severity-sorted list quickly becomes too long to finish.

The signals that matter

  • Known exploitation: is the CVE on the CISA Known Exploited Vulnerabilities (KEV) catalog, or does it have a high EPSS score (the estimated chance it will be exploited soon)?
  • Exposure: does the affected workload accept traffic from the internet?
  • Runtime: is the package actually deployed, or only in a test dependency or an old image nobody runs?
  • Blast radius: what can the workload's role reach: sensitive data, other accounts, admin permissions?
  • Fix available: is there a patched version, and is the upgrade a patch release or a breaking change?

A practical order

  1. Exploited or likely-exploited CVEs on internet-facing workloads with access to sensitive data.
  2. The same CVEs on internet-facing workloads without that access.
  3. Critical CVEs on internal workloads that sit on an attack path.
  4. Everything else, on a schedule, starting with fixes that are simple version bumps.

Make the fix cheap

Most CVE fixes are a dependency or base-image upgrade. Opening that upgrade as a pull request, with the right version for each manifest and lock file, takes the work out of it; your CI tests it and your team merges it. Breaking upgrades need a person to decide, and should be flagged as such instead of opened blind.

Connect code to cloud

Prioritizing this way needs both sides: the dependency in the repository and the server it runs on. Linking the two is what lets a CVE on an exposed production server outrank the same CVE in a sandbox. See also attack path analysis.

Questions

What is EPSS?

The Exploit Prediction Scoring System, published by FIRST, estimates the probability that a CVE will be exploited in the next 30 days. It is a useful complement to CVSS, which measures impact rather than likelihood.

What is the CISA KEV catalog?

The Known Exploited Vulnerabilities catalog from the US Cybersecurity and Infrastructure Security Agency lists CVEs with evidence of active exploitation. Anything on it that affects an exposed workload belongs at the top of your list.

Should we fix every critical CVE?

Eventually, but not in score order. A critical CVE in a package that isn't deployed, or on a workload nothing can reach, can wait behind a high CVE on an internet-facing server with access to customer data.

How does Alye fix vulnerable dependencies?

Alye opens fix pull requests in GitHub, GitLab or Bitbucket for version bumps and base-image updates. You review, test and merge them; Alye never pushes to your default branch.

See it on your own cloud. Rank the CVEs in your code and cloud by what an attacker could reach.

Get started

Ready to put Alye on duty?

First trace right away. First ranked scan in about fifteen minutes.

Start free Read the docs