Setting a Vulnerability Remediation SLA Your Team Can Actually Hit
A vulnerability scanning tool without a remediation timeline attached just produces a growing backlog nobody feels urgency about. The timeline matters more than the scanner, and most teams either skip setting one or copy a number from a compliance checklist without checking whether it's realistic for their team's size.
Here's how to set one that's both defensible to an auditor and actually achievable.
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.
What remediation timeline should a small team start from?
Federal guidance for internet-facing systems sets critical vulnerabilities at 15 days and high-severity at 30, with a tighter 14-day window for known, actively exploited vulnerabilities regardless of severity rating1. These numbers were set for large agencies with dedicated security staff, so treat them as an upper bound for internet-facing systems, not a floor you're free to relax further.
A five-person engineering team can reasonably commit to these same windows for critical and known-exploited vulnerabilities, since those represent genuine emergencies regardless of team size, while being more flexible on the medium and low tiers where the federal guidance itself allows more time. Older vulnerabilities get a longer patch window under this same guidance than ones identified more recently, since a recently assigned CVE actively being exploited is treated as the higher-urgency case1.
Separate internet-facing systems from internal-only ones
A critical vulnerability in a service that's reachable from the public internet is a fundamentally different risk than the same vulnerability in a tool only accessible from your internal network behind its own authentication. Apply the tightest timelines to internet-facing and customer-data-handling systems specifically, and allow a longer window for genuinely internal tooling.
Be honest about what actually counts as internal-only. A service reachable only through your VPN today but planned to be exposed publicly next quarter should already be held to the tighter standard, since the classification needs to reflect where the system is headed, not just where it sits today. A common mistake is classifying a system as internal because it was originally built that way, without revisiting the classification after a later change quietly made it reachable from outside, an added public webhook endpoint, a partner integration exposed through a new route.
Why build vulnerability tracking before you publish an SLA?
A remediation SLA is only real if you can produce, on demand, the discovery date and the fix date for any given finding. Set up that tracking, a ticket with both timestamps, before you publish the SLA to customers or an auditor, not after you've already made the commitment and have no way to prove you're meeting it.
This also surfaces whether your timeline is realistic before it becomes a public promise. If a dry run shows your team consistently takes 20 days to close critical findings, better to discover that internally and either fix the process or adjust the number than to publish a 15-day SLA you're already missing. A dry run also tells you whether your ticketing tool actually captures both dates cleanly, since a manual field someone forgets to fill in defeats the purpose just as surely as never setting up tracking at all.
Decide what happens when you miss the window
Every remediation program misses its own SLA occasionally, a fix requires a larger refactor than expected, a dependency has no patch available yet. Decide in advance how you'll handle this: a documented exception with a revised timeline and a reason, reviewed by someone other than the engineer who missed it, rather than quietly letting the finding age past its deadline with no record.
An SLA with zero documented misses over a long period is more likely to mean nobody's tracking accurately than that the team is perfect. A credible program has a small number of documented, explained exceptions. Review the exceptions themselves on a regular cadence too, since a pattern of the same kind of finding repeatedly missing its deadline points at a process gap worth fixing directly rather than another one-off exception to approve.
Set your remediation SLA in this order:
- Start from the federal tiers for internet-facing systems and treat them as an upper bound rather than a floor to relax.
- Apply the tightest timelines to internet-facing and customer-data systems, and allow a longer window for genuinely internal tooling.
- Set up tracking that records both the discovery date and the fix date for every finding before you publish the SLA.
- Decide in advance how missed deadlines are handled, with a documented exception and a revised timeline.
- Have someone other than the engineer who missed the deadline review each exception.
What Good Looks Like
Good practice means remediation timelines are tiered by severity and exposure, every finding's discovery and fix dates are tracked and producible on demand, and missed deadlines are documented exceptions rather than silently aging findings.
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.
Frequently Asked Questions
Is the 15-day federal critical-vulnerability window realistic for a small engineering team?
For genuinely critical, internet-facing findings, yes, since these represent real emergencies worth prioritizing regardless of team size. It's a harder commitment for the full volume of medium and low findings a scanner generates, which is why segmenting by severity and exposure matters.
Should the same SLA apply to a dependency vulnerability and a bug in our own code?
The severity and exposure should drive the timeline either way, but a dependency vulnerability sometimes has no available patch yet, which your tracking should distinguish from a fix that's simply not been started. Document the difference rather than treating every missed deadline the same.
How do we know if our scanning tool is actually catching what matters?
Check whether findings map to your real attack surface, internet-facing endpoints and anything handling customer data, rather than only counting total findings. A scanner generating hundreds of low-severity findings on internal tooling while missing a real internet-facing gap isn't giving you the coverage the count suggests.
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
Continuous Device Verification for a Zero-Trust API
How continuous device and identity verification actually works in a zero-trust architecture, and where to draw the line for a small engineering team.
Rolling Out Zero Trust in Production Without a Broad Outage
A checklist for rolling out stricter API authentication and authorization in production, and the pitfalls that turn a rollout into an incident.
Managing Upstream API Rate Limits Before They Break Production
A practical approach to upstream API quota management: how to track headroom, queue gracefully, and avoid a vendor's rate limit taking down your app.
How to Audit Whether Your APIs Actually Enforce Zero Trust
A step-by-step method for testing whether your APIs enforce zero trust in practice, not just on paper, and what to do with what you find.
The Real Latency Cost of Zero Trust, and How to Measure It
How to find out how much latency your zero trust controls actually add, which checks are worth the cost, and which ones you can move off the hot path.
Pen Testing, Continuous Scanning, or Bug Bounty: Picking Your Mix
Comparing penetration testing, continuous automated scanning, and bug bounty programs for zero trust APIs, and what each one actually catches.