Reduce alert fatigue by cutting what reaches a human: rank findings by evidence of real exploitation and by exposure in your own systems, auto-close what is not reachable or not present, and give each remaining alert an owner and a deadline. Severity score alone sends too many items to the top of the queue.
Why does severity alone create noise?
A scanner reports a number that describes how bad a flaw could be in the worst case. It does not say whether anyone is using it, or whether your system exposes it. When a scan of a mid-sized service returns hundreds of "high" findings, the team learns to skim, and skimming is how the one real problem slips through.
Three public sources help you add the missing context.
CISA's Known Exploited Vulnerabilities (KEV) catalog lists vulnerabilities with evidence of active exploitation. If something in your estate is on it, it jumps the queue. US federal agencies have binding deadlines for KEV entries, and the list is a sensible default signal for everyone else.
EPSS, the Exploit Prediction Scoring System from FIRST, publishes a probability that a vulnerability will be exploited in the near term, based on observed data. It is a prediction, so use it to order work, not to ignore something outright.
SSVC, Stakeholder-Specific Vulnerability Categorization, is a decision tree approach. CISA uses its own version to reach one of four outcomes: Track, Track*, Attend or Act. The point is that the answer depends on exploitation status, the impact on your mission and exposure, not on one score.
What does a triage order look like?
A constructed example: a four-person platform team gets 380 open dependency findings across 30 services.
- Known exploited. Any finding on the KEV list, in a component that is actually deployed. Likely three or four items. These get a same-week owner.
- Reachable and internet-facing. Findings where the vulnerable function is called by your code and the service is reachable from outside. Perhaps twenty items.
- Likely to be exploited. High EPSS, in reachable code, on internal services. Scheduled into the next sprint.
- Everything else. Batched into routine upgrades. Closed with a reason when the component is unused, such as a dev-only package.
The aim is that no one reads the 380. They read the first twenty-five, and the rest fall into a policy.
What else shrinks the queue?
- Deduplicate. The same vulnerable library in 30 services is one upgrade decision, not 30 alerts.
- Fix at the source. Raise a base image or shared library version once.
- Suppress with expiry. Accepting a risk should create a dated entry that reappears, not a permanent mute.
- Route by owner. An alert with no named owner is noise by definition. Map services to teams in a file in the repository.
- Tune detections. For monitoring alerts, review the ten noisiest rules each month and fix or retire them.
How do you keep the new process honest?
Check it against reality each month. Sample ten closed findings and ask whether the reason recorded still holds. Review any incident or near miss and see whether the tool ranked the cause low. If it did, adjust the rules, not the people. Also watch for the opposite failure: a queue that looks clean because rules suppress too much. A short list of "never auto-close" categories, such as anything on the KEV list, protects against that.
Where can Safeguard help?
Reachability analysis checks whether your code actually calls the vulnerable function, which removes a large share of dependency findings from the urgent list. Policies and gates can then block only on the categories you choose, so builds fail on exploited and reachable issues rather than on every score above a threshold.
How to check or apply this
- Export your open findings and mark which are on the KEV list.
- Add reachability or exposure data for the rest, even if it is only "internet-facing or not".
- Write the triage order above as a short policy with deadlines per tier.
- Assign every service an owning team.
- Replace permanent suppressions with expiring ones.
- Measure open critical items older than the deadline, not the total count.
Quick check
Is a high EPSS score a reason to patch immediately?
It is a reason to move the item up. Combine it with whether the component is deployed and reachable before deciding the deadline.
Can we ignore findings that are not on the KEV list?
No. KEV lists known exploitation, not every dangerous flaw. Treat it as a fast lane for the worst, not a filter for the rest.
Sources
- CISA, Known Exploited Vulnerabilities Catalog
- FIRST, Exploit Prediction Scoring System (EPSS)
- CISA, Stakeholder-Specific Vulnerability Categorization (SSVC)
Last reviewed: 18 October 2026.