Safeguard
Security Guides•

How do you report vulnerabilities fixed versus introduced by a release?

Scan both release SBOMs against the same advisory data on one date, then compare findings: fixed, introduced and carried over. Same source, or it misleads.

Safeguard Security Team
3 min read

Scan both release SBOMs against the same advisory data on the same day, then compare the two finding sets. Findings only in the old release are fixed, findings only in the new one are introduced, and findings in both are carried over. Using different advisory snapshots makes the comparison meaningless.

Why a component diff is not enough

A component diff says what changed in the software. A vulnerability diff says what changed in your exposure. They differ because advisories are published after release. A component that did not change can gain a new finding next week, and an unchanged release can look worse tomorrow than it did yesterday.

Steps

  1. Pick one scan date and one advisory data source for the comparison.
  2. Scan the old SBOM and the new SBOM against it.
  3. Key each finding on component package URL plus advisory identifier.
  4. Classify: in old only, in new only, in both.
  5. For the introduced group, check whether it came from a new component, an updated one, or a newly published advisory on an unchanged one.
  6. Record the date and source with the result.

Reading the three groups

GroupMeaningTypical response
FixedResolved by updates or removalsReport as improvement, verify the component is really updated
Introduced by a code changeYour release added exposureReview before shipping
Introduced by new advisory dataSame software, new knowledgeHandle as normal incoming vulnerability work
Carried overKnown and still openCheck it has an owner and a plan

The second and third groups look identical in a sloppy report. Separating them stops teams being blamed for advisories that appeared after their work.

Handling severity differences

Different databases and scoring versions can rate the same flaw differently, so compare scores from the same source. If you re-score for context, label it separately from the published rating.

Prioritising what remains

Within the carried over and introduced groups, rank by whether the vulnerable code is reachable, whether a fixed version exists, and whether exploitation is known. Reachability analysis reduces the list to what is actually exposed. A fix available now should go through quickly, ideally as an automated pull request that a person reviews.

Reporting to leadership or customers

State the date, the data source and the method, then the three counts and the notable items. Avoid claiming the release is free of vulnerabilities. A statement that scans on a given date found no known issues in the listed components is accurate and defensible.

Keep history

Store each comparison with its release. Over several releases the record shows whether carried over findings shrink or linger, which is more informative than any single report.

Safeguard scans SBOMs and dependencies, applies reachability analysis, and can open fix pull requests with autonomous remediation, which is off by default with every category set to manual. Try the free scan.

Try it yourself

Click through it at your own pace, or open it full screen.

Look at how findings are grouped and tracked over time.

Quick check

Why scan both releases on the same day?

Advisories keep being published. Scanning at different times mixes new knowledge with real changes.

Can an unchanged component gain a finding?

Yes. A new advisory can apply to a version that did not change.

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.