Safeguard
Security Guides•

Blanket waiver or per-finding exception: which should you use?

Use per-finding exceptions by default. Allow a blanket waiver only for a narrow, evidenced class with an owner and a short expiry. Trade-offs explained.

Safeguard Security Team
3 min read

Default to per-finding exceptions, because each one ties a decision to a specific issue and asset. Use a blanket waiver only for a narrow, well-defined class, such as one test-only package family, with a named owner, evidence and a short expiry. Never waive "all low severity".

Definitions

A per-finding exception covers one advisory on one component in one place. A blanket waiver covers a pattern: a package, a severity band, a repository, or a class like "dev dependencies".

Comparison

AspectPer-findingBlanket
Effort to createHigherLower
PrecisionHighLow
Drift riskLowHigh, hides new findings
Audit clarityEach decision visibleOne decision hides many
FitsProduction codeNarrow, low-impact classes

The big risk with blanket waivers is future findings. A rule that covers a package covers every advisory published against it tomorrow, including ones nobody has read.

When a blanket waiver is defensible

All of these should be true:

  • The class is narrow and named, not a severity band
  • The code runs only in a contained place, such as a build step with no network or secrets
  • Someone owns it and has written the reasoning down
  • It expires within weeks or a few months
  • New advisories in the class still alert the owner

If any of these fails, split it into per-finding exceptions.

Scoping tests

Ask the same questions as for any exception: which asset, which version, which environment. The post on how to scope a vulnerability exception to one asset, not everywhere goes deeper.

A blanket waiver should also carry a cap on what it can cover. For example, it may exclude anything on a known exploited list. Exploitation evidence should reopen the decision automatically.

A safer alternative: policy rules

Often the real need is "do not block on this class". That is a gate policy, not a waiver. A written, versioned policy such as "dev-only dependencies do not block merges, but still appear in reports" is visible, reviewable and applies the same way everywhere. A waiver pretending to be a policy is hard to audit.

Reviewing existing blanket waivers

List every waiver that matches more than one finding. For each, count the findings it currently hides and how many were published after the waiver was created. If the hidden set has grown, the owner never approved those later ones. Convert them to per-finding records or retire the waiver.

Safeguard's policies, gates and guardrails let you write class-level rules as policy, with reachability analysis showing which findings actually matter in your code.

Try it yourself

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

Notice how evidence can narrow a long list to the findings that deserve a decision.

Quick check

Is waiving every low severity finding acceptable?

It is a policy choice, not a waiver. If you do it, write it as a policy with an owner and review date.

Do blanket waivers need expiry?

Yes, and a shorter one than per-finding exceptions, because they hide more.

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.