Risk acceptance is the only vulnerability management outcome that is not a technical control, it is a paperwork discipline. A finding that will not be remediated, whether because the patch breaks a legacy interface, a vendor has not shipped a fix, or the cost of remediation exceeds the realistic loss, still needs an owner, a documented reason, and a date when someone looks at it again. Without that record, “accepted” is indistinguishable from “forgotten,” and an auditor, an incident responder, or a new CISO will treat it exactly that way. This piece covers who is allowed to sign off on what severity, what an acceptance request has to contain to be defensible, how long an acceptance should live before it forces a re-review, and where the record needs to sit so it survives staff turnover.
Risk acceptance vs exception vs deferral: three different decisions
Teams routinely collapse these three into one bucket labeled “won’t fix,” which is exactly how audits go wrong. They answer different questions and should produce different paperwork.
- Risk acceptance answers “should we fix this at all.” The organization decides the residual risk is tolerable given the asset’s exposure, the exploitability of the flaw, and the cost of remediation. It is a business decision, not a scheduling one, and it needs a named risk owner, not just a ticket assignee.
- Exception answers “can this asset deviate from a control baseline.” A server that cannot run the required agent, or a database that cannot be patched to the mandated minor version because a vendor certifies only an older build, needs an exception to policy with a compensating control attached, such as network isolation or additional monitoring. The vulnerability itself may still get fixed eventually; the exception covers the gap in the meantime.
- Deferral answers “when will this get fixed,” not “if.” It is a scheduling commitment with a firm date, usually because the fix requires a maintenance window, a code release, or coordination with a business unit. A deferral that keeps sliding without a new date being set is not a deferral anymore, it is silent acceptance wearing a different label.
Keeping these separate matters because they carry different evidentiary requirements. An auditor checking a risk acceptance wants to see a documented risk calculation and an authorized signature. An auditor checking an exception wants to see the compensating control and its testing evidence. Mislabeling a deferral as an acceptance is how a two-week delay quietly becomes a permanent gap that nobody re-examines.
Who has authority to accept at each risk level
Authority should scale with the blast radius of being wrong, not with organizational convenience. A team lead accepting risk on an internal test host and a team lead accepting risk on a payment-processing endpoint are not the same decision, even if the CVSS score looks similar on paper.
| Severity | Typical approver | Notes |
|---|---|---|
| Critical (CVSS 9.0-10.0) or known exploited | CISO or a security steering committee, plus the business owner of the asset | Internet-facing critical findings should rarely qualify for acceptance at all; if one does, it needs a hard expiration under 30 days |
| High (CVSS 7.0-8.9) | Security lead jointly with the system or application owner | Requires a written compensating control if the affected asset is reachable from an untrusted network |
| Medium (CVSS 4.0-6.9) | System owner, with security team notified | Can often be batch-reviewed quarterly rather than case by case |
| Low (CVSS below 4.0) | Team lead, self-service with a logged justification | Still needs a register entry; volume is the risk here, not any single finding |
Platforms that route findings through defined approval gates, such as SITEY, enforce this hierarchy structurally rather than relying on a policy document nobody rereads: a critical finding cannot be marked accepted by a role below the configured threshold, and the workflow blocks the transition until the right approver has actually signed off. See how that gating works on the approval gates module page. Whatever tooling is in use, the principle holds without it: if the person who can click “accept” is the same person who owns the deadline they are missing, the control has no teeth.
What a complete acceptance request must contain as evidence
An acceptance that says “business decision, see John” is not an acceptance, it is a placeholder that will fail the first audit sample it is drawn into. A defensible request contains, at minimum:
- The specific finding identifier and CVE (or internal finding ID if no CVE applies), not a vague description of “the SSL issue on the web servers.”
- The exact asset or asset group affected, including whether it is internet-facing, and if so, which IP or hostname.
- The business or technical justification for not remediating: vendor end-of-support, application incompatibility, compensating control already in place, or cost versus likelihood analysis.
- Any compensating control currently active, described specifically enough to be tested, for example “WAF rule 40231 blocks the exploit pattern” rather than “protected by WAF.”
- A residual risk statement in plain language: what could actually happen if this is exploited, given the compensating controls.
- An expiration date, never left open-ended.
- The name and role of the approver, and the date of approval.
Two fields get skipped most often: the compensating control detail and the expiration date. Both are exactly what an auditor or a security lead reviewing the register six months later will ask for first, and both are cheap to write down at the time of the decision and expensive to reconstruct later from memory or chat history.
Time-bounding acceptances and the events that force a re-review
No acceptance should be permanent on paper, even when the underlying condition (an unsupported legacy system, say) genuinely will not change for years. Set a maximum duration by severity, such as 30 days for critical, 90 for high, 180 for medium, and 12 months for low, and require an explicit re-approval at expiration rather than a silent rollover. A re-approval is cheap: it is usually a five-minute check that nothing material changed, plus a new signature and a new date.
Independent of the calendar, certain events should force an immediate re-review regardless of how much time is left on the original acceptance:
- The vulnerability is added to a known-exploited-vulnerabilities list or a public proof-of-concept is published, changing the likelihood term in the original risk calculation.
- The asset’s network exposure changes, for example a system that was internal becomes reachable from a DMZ or the internet after a network change.
- A compensating control referenced in the acceptance is removed, disabled, or fails a test, such as a WAF rule getting rolled back during an unrelated change.
- A vendor patch or fix becomes available where the original justification was “no fix exists.”
- The asset changes ownership or the approving individual leaves the organization, since the accountability the acceptance rested on no longer exists.
Wiring these triggers into the actual remediation and retest workflow, rather than trusting a calendar reminder, is what keeps an acceptance from outliving its own justification. Systems that track a finding’s full lifecycle state, including its dependencies on exposure and control status, can flag an acceptance for re-review automatically the moment one of these conditions is met; see the vulnerability lifecycle module for how that state machine is typically modeled.
The acceptance register: fields, retention, ownership
Every accepted, excepted, or deferred finding belongs in one register, not scattered across spreadsheets, ticket comments, and email threads. At minimum the register needs: a unique record ID, the linked finding ID and CVE, the affected asset, severity, decision type (acceptance, exception, or deferral), justification text, compensating control reference, approver name and role, approval date, expiration date, current status (active, expired, revoked, or superseded), and a review history log showing every re-approval or change.
Retention should outlive the finding itself. Once a vulnerability is finally remediated, keep its acceptance history rather than deleting it, since auditors for frameworks like ISO 27001, PCI DSS, or SOC 2 will sample past periods, not just the current state, and a gap in the historical record reads as a missing control. Three years of retained history is a reasonable baseline for most compliance cycles; check the specific retention clause in whichever framework applies before shortening that.
Ownership belongs with the security governance or GRC function, not with whoever happens to run the scanner. The scanning team produces findings; a separate function owns the decision record and is accountable for chasing expirations. Compliance mapping features that tie each accepted risk to the specific control or requirement it deviates from, the kind found in the compliance mapping module, make that register directly usable as audit evidence instead of a document that has to be manually cross-referenced against a control list every time an assessor asks for a sample.
Anti-patterns: permanent acceptance, silent acceptance, acceptance by inaction
Three failure modes account for most of the risk acceptance findings auditors write up, and none of them require malice, just drift.
- Permanent acceptance. An acceptance with no expiration date is not a decision, it is an exit from the vulnerability management process. The justification that was true two years ago (a vendor had not patched yet, an interim compensating control was in place) is rarely checked again, and the record becomes a rubber stamp that travels forward untouched.
- Silent acceptance. A finding sits open past its remediation SLA with no formal decision attached to it at all. Nobody said yes, nobody said no, it simply aged out of active attention during a backlog grooming session or a re-prioritization. This is the most common pattern and the hardest to catch, because on paper the finding still shows as “open,” not “accepted,” which makes it invisible to any report that only counts formal acceptances.
- Acceptance by inaction. Closely related to silent acceptance but specific to ticketing systems: a ticket gets auto-closed by an inactivity rule, or bulk-closed during a cleanup, without anyone reviewing the underlying vulnerability. The closure looks like resolution in a dashboard but no remediation, exception, or acceptance actually happened.
The structural fix for all three is the same: a vulnerability should not be able to leave the active queue without landing in one of exactly three states, remediated, verified accepted or excepted with an expiration, or reassigned with a new due date, and the transition should require the fields described above rather than a status dropdown anyone can flip. Automated retest and closure workflows, such as the one SITEY runs after a claimed fix, apply the same discipline in the other direction: a finding cannot be marked resolved without a re-scan confirming the fix actually holds, which is the same principle of “no state change without evidence” applied to the opposite failure mode. Reporting that rolls up acceptance status alongside remediation status, covered in the reporting module, is usually what first surfaces how many findings in a given environment are sitting in one of these three anti-patterns rather than a genuine, time-bounded acceptance.
About SITEY
SITEY is an autonomous vulnerability management platform. It discovers, validates, prioritizes, remediates and re-tests vulnerabilities through an eight-phase automated pipeline, unifying output from 17 integrated scanners. SITEY is self-hosted: it runs in your own infrastructure and your findings are stored there. Outbound connections are limited to licence activation and the optional services you enable, such as an AI provider, CVE enrichment and patch catalogues. Pricing is 599 USD per month or 5,999 USD for a perpetual lifetime license. See pricing or how the platform works.