Safeguard
Security Guides•

Auto-dismiss or snooze vulnerability alerts safely: use an expiry

Auto-dismiss rules cut noise, but a rule with no expiry hides risk for good. Set narrow scope, log the reason, and review each suppression on a set date.

Safeguard Security Team
3 min read

Dismiss or snooze only with a narrow rule, a written reason and a review date. A suppression with no expiry becomes a permanent blind spot. The safest rules are specific to a package or condition, logged, reversible, and rechecked when the facts around them change.

What the platforms offer

GitHub's documentation describes Dependabot auto-triage rules that can auto-dismiss or snooze certain alerts before notifications are sent. Preset rules include dismissing low impact issues for development scoped npm dependencies, which is on by default for public repositories. Custom rules can match on severity, package name and CWE. Two details matter for safety. Auto-dismissed alerts remain available for reporting and can be reopened, and they reopen automatically if metadata changes, such as a dependency moving from development to production scope.

Where suppression goes wrong

  1. Scope is too wide, such as dismissing a whole severity band.
  2. There is no reason recorded, so nobody remembers why six months later.
  3. The condition that justified it changes, but the suppression stays.
  4. The suppression outlives the person who made it.
  5. Nobody counts how many alerts are hidden.

GitHub's own page on auto-triage warns about this tradeoff: the malware dismissal preset is off by default, because it could also dismiss an alert for a truly malicious dependency added by a contributor.

A safe suppression record

Every suppression should carry these fields.

FieldExample content
ScopeOne package, one advisory, one repository
ReasonNot reachable, test only, fixed upstream, mitigated by config
EvidenceLink to analysis or ticket
OwnerNamed person
ExpiryA date, commonly thirty to ninety days
Reopen triggerAdded to KEV, scope change, new exploit

Review on a schedule

Once a month, list suppressions that expire within thirty days and decide: renew with fresh evidence, or lift. Also list suppressions with no expiry and fix them. Track the count of active suppressions as a metric. A rising count with a flat alert count means noise is being hidden rather than reduced.

Let reopen triggers do the watching

Do not rely on memory. Reopen automatically when a vulnerability enters the CISA KEV catalog, when a dependency changes scope, or when the advisory is revised. If your tool cannot do this, a small scheduled script that compares your suppression list with KEV can.

Where Safeguard fits

Safeguard's policies and reachability analysis give you a reason to attach to a decision, namely that the vulnerable path is not called, and policies are versioned so changes are visible. A free scan shows findings you can reason about.

Quick check

Is it fine to dismiss all low severity alerts?

Rarely. Severity alone ignores exploitation and exposure. Prefer rules tied to a specific condition.

How long should a snooze last?

Long enough to avoid churn, short enough to recheck, often thirty to ninety days. Pick one and enforce it.

Sources

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.