Safeguard
Compliance•

Can a dependency update change its license? Recheck it on fix PRs

Yes, a license is declared per version, so an upgrade can change it. How to add a license check to fix pull requests and what to do when it changes.

Safeguard Security Team
3 min read

Yes. A license is declared by each published version, so an upgrade can carry different terms from the version you use now. A fix pull request that bumps a package should be checked for license changes, because a vulnerability fix is not a reason to accept new obligations without noticing.

Why this can happen

Package metadata is part of each release. In npm, for example, the license field in package.json is set per version and is expected to be an SPDX identifier such as MIT, or an SPDX expression, or a pointer to a license file. Nothing in the registry model stops a maintainer from changing that field in a later release.

Most of the time nothing changes. The rare change, such as a move to a source available or copyleft license, is the one that matters, and a security bump is a poor moment to discover it. For background, see what a business source license change date means.

What to add to the review

A license check on a fix pull request is quick:

  1. Compare the license declared by the old version and the new one for each changed package.
  2. Include transitive packages that the update pulls in or swaps.
  3. Flag any difference, and any new "SEE LICENSE IN" or unlicensed value.
  4. Route flagged changes to whoever owns license policy.

Automate the comparison. A person will not reliably spot a changed field in a lockfile diff.

What to do when it changed

ChangeTypical response
Permissive to permissiveNote it and merge
Permissive to copyleft or restrictedHold the PR, ask legal or the policy owner
Declared license becomes unclearHold, check the project repository
License unchanged but a new transitive appearsCheck the new package too

If you must patch but cannot accept the new terms, options include a backported fix from a distributor, pinning an earlier fixed release, or replacing the package. Our fixed version or backported fix post covers how to judge each.

Keep a record

For audits and customer questions, store the license for each component version in your SBOM. A license check result attached to the pull request is useful evidence that a person looked.

Where license data comes from

License information is declared by authors and collected from package metadata, repository files and sometimes both. These sources can disagree, and metadata can be missing or free text instead of a standard identifier. Treat an unclear result as a reason to look at the project itself, not as a pass. SPDX identifiers make comparisons reliable, so prefer tooling that normalises to them, and record the source of each value in your SBOM.

Where Safeguard fits

Safeguard's SBOM and dependency scanning records components and their license data, and policies and gates can block changes that break your license rules. A free scan lists the licenses in your dependencies.

Quick check

Do patch releases ever change licenses?

It is uncommon, but nothing prevents it, so check programmatically rather than assuming.

Is a license check legal advice?

No. It flags changes so the right person can decide.

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.