Safeguard
Security Guides•

How do you read a static analysis finding and decide if it is real?

Read the rule, the location, the data path and the severity, then try to break it. A five step method for deciding whether a SAST finding is real.

Safeguard Security Team
3 min read

Read five things in order: the rule name, the file and line, the data path, the severity and confidence, and the surrounding code. Then try to reproduce or reason through an attack. If you cannot explain how an outsider reaches the flaw, mark it unclear rather than real.

Why this matters

OWASP notes that static analysis reports the file, line and snippet but that confirming a finding is a real vulnerability can be hard, and false positives are common. A repeatable method turns guessing into a decision you can record.

The five steps

  1. Rule. What weakness does the rule describe? Look up the weakness category so you know what a true case looks like.
  2. Location. Open the file at the line. Is it production code, a test, a generated file or a sample?
  3. Path. Follow the data from source to sink. Did it cross a validation or encoding step the tool missed?
  4. Severity and confidence. Severity is the damage if real. Confidence is how sure the tool is. A high severity, low confidence finding needs a human look, not an alarm.
  5. Context. Can an outside user reach this code? Is it behind authentication? Is the data sensitive?

Verdict table

What you foundVerdictAction
Path from public input, no sanitizerRealFix and add a test
Sanitizer exists but is unknown to the toolFalse positiveSuppress with reason, or teach the rule
Code only in testsNot a riskExclude the folder
Cannot tellUnclearAsk the code owner, set a review date

Write it down

For every verdict, note the reason in the ticket. Short notes like "input is validated by the shared parser, see file name" help the next reader and feed rule tuning.

Fix properly

Fix the cause, not the symptom. If one helper builds unsafe queries, change the helper so all callers benefit, and add a test that fails on the old behavior.

Common mistakes

New reviewers often fix the line the tool points at and move on. That may silence the alert without removing the weakness, for example by escaping a value for the wrong context. Re-run the scan after the change and, for serious issues, add a test that sends the hostile input. Another habit worth building is reading neighboring findings: three similar results in one folder usually point to one shared mistake worth fixing once.

Quick check

What if the tool and I disagree?

Get a second opinion from the code owner. Document the reasoning if you suppress.

Do I need to reproduce every finding with an exploit?

No. Reproduce high severity ones where practical. For others, a clear reasoned path is enough.

Where Safeguard fits

Safeguard provides reachability analysis and policy gates for dependency findings, which narrows what you read by hand. Try the free scan.

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.