Safeguard
Developer Tools•

Two scanners suggest different fix versions: which upgrade to pick?

When one scanner says upgrade to 2.3.1 and another says 2.4.0, compare the fixed event, check compatibility and pick the smallest safe jump. Steps inside.

Safeguard Security Team
4 min read

Pick the smallest upgrade that contains every fix you need and passes your tests. Two scanners can suggest different versions because one reports the first fixed release and the other reports the newest safe release, or because they cover different advisories on the same package. Read the advisories, then choose.

Why the suggestions differ

A fix version is a data field, and the data can be derived in more than one way.

  • First fixed version. The OSV schema says the fixed event marks the version that contains the fix. A tool that reports this gives you the minimum.
  • Latest release. Some tools simply suggest the newest version, which clears every known issue but may carry larger changes.
  • Multiple advisories. A package can have several advisories, each with its own fixed version. A tool that covers all of them must suggest a version that clears the highest fixed value. A tool that sees only one will suggest a lower one.
  • Different release lines. A project may maintain two lines, for example 2.x and 3.x, with a fix in each. One tool may point to the line you are on, the other to the newest line.

A decision procedure

  1. List every advisory on the package for your current version. Use both tools and the project's own notices. Union them.
  2. Find the fixed version for each advisory on your release line. If an advisory has a fix on your line, you may not need a major upgrade.
  3. Take the highest of those fixed versions. That is the minimum upgrade that clears all known issues on your line.
  4. Check the change level. Under SemVer, a patch or minor bump should be backward compatible, but read the release notes. A major bump needs planning.
  5. Test. Run your test suite and a smoke test on the upgraded build.
  6. Rescan with both tools. If either still flags the package, read why before you move on.
SituationChoice
Fix exists on your current lineUpgrade within the line
Fix only on a newer majorPlan the major upgrade, or document an accepted risk with an expiry
No fix at allConsider replacing the package, or mitigate and record
Two tools differ by one patchTake the higher, run tests

Transitive dependencies complicate it

If the vulnerable package is not one you declare, you may have to raise a parent or add an override. In Maven, the dependency mechanism guide says the nearest definition wins and that you can force a version by declaring it directly or through dependency management. In npm the equivalent is an override. Whatever the mechanism, verify in the resolved tree that the new version is the one that actually installs.

Record the choice

Write down the two suggestions, the one you picked, and the reason. If an auditor or customer asks why you did not follow a tool's recommendation, the note answers it.

Try it yourself

Click through it at your own pace, or open it full screen. Look at how a fix is tied to a specific target version, then compare that with what each of your tools suggests.

Quick check

Is the latest version always the safest choice?

It clears known issues, but it may bring breaking changes and new bugs. Prefer the smallest version that contains all needed fixes, then test.

What if neither tool shows a fixed version?

Check the project's own advisory. If no fix exists, mitigate or replace the package, and record the decision with a review date.

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.