Safeguard
Security Guides•

A ten case scanner coverage scorecard with pass and fail criteria

Ten small tests that show what your vulnerability scanner can and cannot see, each with a pass or fail rule you can record and repeat.

Safeguard Security Team
3 min read

Run ten small tests against a throwaway repository, one per way a scanner can miss something, and record pass or fail for each. The result is a coverage map you can show an auditor and a plan for what to patch around. Rerun it whenever tooling changes.

How to use it

Create a private test repository that is never deployed. Each case adds one fixture, you scan, and you compare the result to the pass rule. Use dependencies with maintainer published advisories as fixtures. Record the date and scanner version beside each result.

The scorecard

#CasePass when
1Direct dependency in a supported ecosystemAdvisory reported with correct version
2Transitive dependency, two levels downAdvisory reported, with the path
3Lockfile only, no manifest changeVersion read from the lockfile
4Version set by a parent or BOMResolved version reported
5Dependency pinned to a git commitEither reported, or listed as unresolved
6Vendored copy with no manifestDetected, or flagged as unidentified file
7Checked in binary such as a JARDetected, or listed in inventory
8Library inside a container image layerReported by the image scan
9Nested project in a subfolderScanned, or listed as skipped
10Internal package from a private registryResolved, or listed as unresolved

Notice that several pass rules accept an honest "unresolved". A scanner that says "I could not identify this" is behaving well. One that says nothing is the failure.

Scoring

Count passes out of ten, but read the failures individually. Two failures in cases you never use may matter less than one in your main ecosystem. Weight by how much of your code each case represents.

What to do with failures

FailureTypical workaround
Transitive missedScan the resolved dependency tree
Vendored missedThird party inventory file in the SBOM
Private registry unresolvedFix registry credentials for the scanner
Nested project skippedConfigure scan roots

Details for individual cases are in plant a known vulnerable package to test scanner coverage, test whether your scanner finds a vendored library and find manifests your scanner silently skipped.

Keep the evidence

Store the filled scorecard with your scan coverage statement. It shows exactly what was tested, rather than claiming coverage in general terms.

Try it yourself

Click through it at your own pace, or open it full screen. Compare the inventory it shows with the ten cases above and think about which would appear.

Safeguard offers SBOM and dependency scanning and a free scan at gold.safeguard.sh/scan. Run this scorecard on any tool you evaluate.

Quick check

How long does the scorecard take?

Setting up the repository takes a few hours once. Reruns are quick if you keep the fixtures.

Is ten out of ten realistic?

Not usually. The goal is to know where the gaps are, not to score perfectly.

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.