Safeguard
Developer Tools•

How do you report a scanner false positive so it actually gets fixed?

Report one rule per issue, include a minimal reproducible example, the tool version and expected result, and remove sensitive data. A checklist.

Safeguard Security Team
3 min read

To get a false positive fixed, report one rule per issue with a minimal reproducible example, the tool and rule version, what you expected, and what you got. Strip secrets and customer code first. A report the maintainer can run in two minutes gets answered; a screenshot does not.

Why bother reporting

Local suppressions fix your noise. Reports fix everyone's, including your own next year. A rule that raises many false alarms is a defect in the rule, and tool makers cannot repair what they never hear about.

The ZAP project's guidance is a good model even if you use a different tool: report false positives, keep each issue to one scan rule, include enough information to reproduce the problem, and remove sensitive data before sending. The same advice says to first understand the reported issue and test it manually, so you are sure it is not real.

Checklist before you send

  1. Confirm it is false. Reproduce the analysis by hand. See confirming a finding for DAST and why SAST false positives happen for code.
  2. Reduce it. Cut the code or the request down to the smallest sample that still triggers the alert. Ten lines beats a whole repository.
  3. Remove anything private. Hostnames, tokens, customer data, proprietary logic. Rewrite the sample with neutral names.
  4. Record versions. Tool version, rule ID and rule version, ruleset, language version, and the framework involved.
  5. State expected and actual results. One sentence each.
  6. Explain why it is false. For example, "the value comes from a constant" or "the framework escapes this output".
  7. Say what you tried. Threshold changes, filters, or inline suppressions, so the maintainer can see the gap.
  8. One issue per rule. Several false alarms from several rules become several reports.

A template

FieldContent
TitleRule ID and a short symptom
VersionTool, rule, language, framework
SampleMinimal code or request, anonymised
ExpectedNo finding, because of a stated reason
ActualFinding text copied from the output
WorkaroundWhat you used locally

Commercial tools and support

Paid tools usually have a support channel instead of a public tracker. The same checklist applies. Ask for a rule level fix, not only a suppression, and ask how you will be told when it ships.

Close the loop

Keep a list of reported false positives with links. When the fix ships, remove your local workaround, otherwise you will carry a stale suppression indefinitely. See reviewing suppressions on a schedule.

One factual note on Safeguard

Safeguard offers policies and reachability analysis that can help reduce noise on your side while a report is pending. If you want a quick look at your own code, the free scan at gold.safeguard.sh/scan is a no-account place to start.

Quick check

Is it safe to share code with a vendor?

Share only a reduced sample you have anonymised. Check your contract and policy first.

What if I cannot reduce the sample?

Say so in the report and describe the code pattern in words. A pattern description is still useful to a rule author.

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.