Safeguard
Security Guides•

What counts as remediated: fixed, mitigated or risk accepted?

Fixed, mitigated, accepted and false positive are four different closures. Count them separately so remediation metrics do not mislead anyone.

Safeguard Security Team
3 min read

Only a fix that removes the vulnerable code from production counts as remediated in the strict sense. A mitigation reduces exposure but leaves the flaw, and an accepted risk leaves both. Report each closure type separately, or your remediation numbers will overstate how much risk went away.

Four closure types

ClosureWhat it meansRisk after closure
FixedThe vulnerable code or version is gone from productionRemoved
MitigatedA control reduces exploitability but the flaw remainsReduced, not removed
AcceptedA named owner decided to live with it for a periodUnchanged
False positive or not applicableThe finding was wrong or does not apply to the productNone, but check the reason

Mixing these into one "closed" count is the quickest way to make a program look better than it is.

Rules that keep the numbers honest

  1. A fix needs deployment evidence. A merged pull request is not a fix until it reaches production.
  2. A mitigation needs a description and an expiry. For example, a rule that blocks the vulnerable path, reviewed on a date.
  3. An acceptance needs an owner, a reason and a review date. An exception without a review date is permanent.
  4. A false positive needs a short reason. "Not reachable" should reference how that was checked.

See exception metrics for aging, renewals and coverage.

How to report them

Show a stacked bar of closures per month, split by type. Executives can then see how much of the progress is real reduction and how much is deferral. If accepted closures climb steadily, that is a policy conversation, not a success.

PatternWhat it suggests
Mostly fixedHealthy remediation
Rising acceptedDeferral growing, review the exception process
Rising false positiveTool tuning or scope problem
Rising mitigated with no follow upTemporary controls becoming permanent

Steps to implement

  1. Add a required closure type field to every finding.
  2. Make deployment evidence a required link for fixed closures.
  3. Add expiry dates for mitigated and accepted.
  4. Run a monthly report that lists expiring items.
  5. Reopen items automatically when mitigation or acceptance expires.

Why this matters for audits and customers

Reviewers often ask how you handle findings you do not fix. A clear closure taxonomy with recorded decisions is a straightforward answer, and it avoids inflating figures you may be asked to substantiate later. See reporting zero findings without overclaiming.

Safeguard's autonomous remediation opens fix pull requests, off by default with every category on Manual, and its policies can record exceptions with owners and dates. A free scan shows which findings already have a fixed version.

Try it yourself

Click through it at your own pace, or open it full screen.

Look at which findings have a fix available and decide which closure type each would fall under once handled.

Quick check

Is a virtual patch a fix?

It is a mitigation. The flaw remains in the code, so record it as mitigated with an expiry.

Should accepted risks count against the SLA?

Report them separately. They are outside the SLA by decision, but they should still be visible and reviewed.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.