Safeguard
Compliance•

What should you record when an SBOM search finds nothing?

A zero-hit SBOM search still needs a record: query, scope, SBOM dates, gaps and reviewer. It is the evidence behind any not affected claim you make.

Safeguard Security Team
3 min read

When an SBOM search finds nothing, record the exact query, the set of SBOMs searched with their dates, the products with no SBOM, who ran it and when, and the verdict with its basis. A zero result is only meaningful if you can show what was searched and what was not.

Why a negative result needs evidence

A customer or auditor who asks "were you affected?" is really asking how you know. "We searched and found nothing" is not an answer without scope. The CISA minimum requirements for VEX say a not affected statement must include a justification or an impact statement explaining how or why the product is not affected. A search record is the factual base for that explanation.

The record, field by field

FieldExample content
Advisory referenceIdentifier and the date you read it
Component identityEcosystem, namespace, name, affected range
QueryThe exact purl prefix or search string used
ScopeWhich SBOM store, how many SBOMs, product list
SBOM datesOldest and newest generation dates in the set
DepthWhether transitive dependencies were included
GapsProducts or releases with no SBOM, listed by name
ResultZero hits, or hits removed with reasons
VerdictNot affected, with the justification type
Reviewer and timeName and timestamp in a consistent format

Match the justification to the evidence

The OpenVEX specification defines a justification of component_not_present for the case where the search shows the component is simply not there. Use that only when your scope was complete. If some products had no SBOM, the honest status for those is under investigation, and the record should say so.

Common weak spots

  • Searching a stale SBOM set. If the newest SBOM is months old, say so, or regenerate first.
  • Searching direct dependencies only. A zero result then covers less than it appears to.
  • Searching one name spelling when the advisory lists several.
  • Not recording the products excluded from the search.

Retention

Keep the record with the incident file, in the same place you keep customer notices. Retention periods depend on your policies and contracts, so check them with your compliance owner. The point is that someone can reconstruct the check later without asking you.

Related reading

The post on reporting not affected honestly covers the wording side, and VEX not affected justifications for unreachable code covers a different basis for the same status.

Try it yourself

Click through it at your own pace, or open it full screen. Look at how a finding is judged before a verdict is recorded.

Quick check

Is a zero result the same as not affected?

Only when the search covered every shipped product with a complete, current SBOM. Otherwise list the gaps.

Who should sign off on the record?

The person who ran the search and a reviewer, with timestamps. Your own policy decides the details.

Safeguard's compliance and evidence automation supports keeping these records alongside the findings.

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.