Turning Dependency Vulnerability Alerts Into an Actual Patching Process
Every team with dependency scanning turned on has felt this: a security tool opens forty new issues overnight, most of them marked high or critical, and the backlog just keeps growing because nobody can tell which ten actually matter. Software composition analysis is only useful if the alerts it produces turn into action, and that requires a triage process, not just a scanner.
Here's a runbook for building that process without drowning in noise.
Vendors Covered in this Article
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
How do you separate reachable from unreachable vulnerabilities?
A vulnerability in a dependency you never actually call, a transitive dependency of a transitive dependency, whose vulnerable function never executes in your code paths, is a very different risk than one in a library you call directly on every request. Most SCA tools can tell you whether a package is used, but fewer tell you whether the specific vulnerable function is reachable from your code. If your tool supports reachability analysis, start there. If it doesn't, a quick manual check, is this package even imported anywhere in the code that runs, cuts the real backlog down fast.
Step Two: Separate Internet-Facing From Internal-Only
A vulnerability in a library used only by an internal batch job, run on a schedule, with no external input, carries less urgency than the same severity score attached to a library in your public-facing API layer. Tag your services by exposure, internet-facing versus internal-only, and let that tag weight your triage alongside severity. This is also the logic behind federal patching guidance: critical vulnerabilities on internet-accessible systems get the tightest remediation window, fifteen days, with high-severity ones getting thirty1. Your organization doesn't have to follow that exact timeline, but it's a reasonable, well-documented starting point for setting your own.
Step Three: Check Whether It's a Known Exploited Vulnerability
A vulnerability actively being exploited in the wild deserves faster attention than one that's theoretical, regardless of its raw severity score. CISA maintains a public Known Exploited Vulnerabilities catalog specifically for this reason, and federal agencies are required to patch anything on that list within two weeks for newer CVEs, or six months for older ones already on the list before the requirement existed1. Cross-referencing your alerts against that catalog, many SCA tools do this automatically, is one of the more useful triage steps available, because it separates real, observed risk from theoretical risk cheaply, without you having to read every advisory yourself.
A Worked Example of the Full Triage
Say your scanner flags three new critical vulnerabilities overnight. The first is in a logging library called only from an internal admin tool with no external network access. The second is in an HTTP parsing library used directly in your public API gateway, and it happens to be on the CISA Known Exploited catalog as of this week. The third is in a testing dependency that never ships to production at all. Running these through the process above, exposure, reachability, and known-exploited status, sorts them immediately: the second gets patched within days, the first goes into a scheduled update cycle, and the third can likely be closed without any patch at all, since it never reaches a running system. A severity score alone would have told you all three were equally urgent, which is exactly the problem this triage fixes.
How do you set a patching SLA by tier?
Once you've triaged by reachability, exposure, and known-exploited status, assign each tier a concrete remediation window and hold to it. A reasonable structure: known-exploited and reachable on an internet-facing system gets patched within days, not weeks. Reachable and internet-facing but not known-exploited gets a couple of weeks. Everything else gets bundled into regular dependency update cycles rather than urgent, one-off patches. Writing this down turns a subjective judgment call, argued fresh every time an alert fires, into a repeatable process.
Common Ways This Process Breaks Down
A few patterns undermine even a well-designed triage process:
- Treating every critical-severity alert as equally urgent regardless of reachability or exposure, which is exactly the noise problem this process exists to fix.
- Never revisiting the backlog of lower-tier alerts, so they accumulate indefinitely instead of getting bundled into scheduled update cycles.
- Patching a dependency without checking for breaking changes first, which trades a security incident for an availability incident.
- Having no owner for the triage process itself, so it only runs when someone happens to notice the backlog growing.
What Good Looks Like
A working SCA process means every new vulnerability alert gets triaged by reachability and exposure within a set window, with a documented remediation SLA per tier, not left to individual judgment each time.
Building The Capability (5-Stage Skill Ladder)
How to Get Started
Disclosure: We may earn a commission if you buy through some links on this page. It doesn't change what we recommend.
SCA tells you what's vulnerable before it's exploited; an endpoint detection tool like CrowdStrike is the separate layer that catches active exploitation if something slips through before you patch it.
A vulnerability management platform like Tenable can automate the reachability and exposure tagging this process depends on, instead of someone doing it by hand for every alert.
Frequently Asked Questions
Should every internet-facing critical vulnerability really be patched within fifteen days?
That specific window comes from federal binding directives, not a universal law, so treat it as a useful benchmark rather than a hard requirement for your organization. What matters more is picking a consistent window for your highest-risk tier and actually holding to it, whether that's fifteen days or another number that fits your release cycle.
What's the difference between a vulnerability scanner and software composition analysis?
A general vulnerability scanner often checks infrastructure and configuration. Software composition analysis specifically inventories your open source dependencies and cross-references them against known vulnerability databases, including transitive dependencies you didn't add directly. Most mature security setups use both, since they cover different layers.
How do we handle a vulnerable dependency with no patch available yet?
Check whether you can mitigate the specific vulnerable function's exposure, disabling the affected feature, adding input validation in front of it, or restricting network access to the service that uses it, while you wait for an upstream fix. Track it explicitly rather than letting it sit silently in the backlog, since an unpatched, unmitigated known vulnerability is exactly the gap attackers look for.
Sources
Where we quote a benchmark, we show its source. Other figures in this guide are estimates or general guidance, so check them against your own numbers.
- Security patch remediation SLAs (CISA federal mandates, used as industry norm). CISA Binding Operational Directives 19-02 and 22-01 (CISA briefing hosted at NIST CSRC), 2022.
Related Guides
Turning Scanner Noise Into a Real Patch Schedule
A dependency scanner with four hundred open findings gets ignored. How to triage by reachability and exploitation status instead of raw severity.
Your Dependency Scanner Files 200 Tickets a Week. Nobody Reads Them
Why software composition analysis tools generate more vulnerability alerts than teams can act on, and a triage system that actually gets things patched.
How to Ship a Risky Change Without a 2am Rollback
A concrete walkthrough of how to plan a risky production deployment: how to split it, what to watch, and when to decide the rollback trigger.
Cutting Through Dependency Vulnerability Alert Noise
Why most dependency vulnerability alerts get ignored, and a triage workflow using reachability and severity so the real ones don't get lost in the noise.
A Practical Checklist for Triaging Dependency Vulnerability Alerts
A checklist for triaging software composition analysis alerts so a real, exploitable vulnerability doesn't get lost in a queue of low-priority notifications.
Build or Buy for Verifying Every Device That Connects?
How to split device identity from device posture checking, what building either one in house actually costs, and where a platform earns its keep instead.