Safeguard
Security Guides•

A year without dependency updates: what piles up month by month

A hypothetical month by month view of what accumulates when a team skips dependency updates for twelve months, and where to intervene before it hurts.

Safeguard Security Team
4 min read

If a team stops updating dependencies, the costs do not arrive evenly. Early months feel free, the middle months add exposure and drift, and the last months bring runtime support questions and a large upgrade. This is a hypothetical timeline, not data from any company, built to show where intervention is cheapest.

How to read this

The months below are illustrative. Your pace depends on how many dependencies you have, how active they are, and how often advisories appear. The pattern is what matters: gaps compound, they do not just add.

Months 1 to 3: invisible

Builds pass. A few patch releases pass you by. The lockfile still resolves to the same versions. Nothing hurts, so nobody notices the decision has been made. Catching up now takes an afternoon.

Months 4 to 6: exposure begins

Advisories appear for packages you use, including nested ones. Some have fixed versions. Because you have not updated, each fix requires moving through several intermediate versions. Under semantic versioning, minor releases should stay backward compatible, so this stage is usually still manageable in a day or two, if you start.

Months 7 to 9: majors arrive

One or more core libraries ship a new major with breaking changes. Other libraries begin requiring it. You can still stay on the old major, but your options narrow. A security fix may appear only on the newer line. Catching up is now a project measured in days.

Months 10 to 12: support and trust

A runtime approaches a published end of life date. Python describes support lasting about five years per release, and Node.js lists end of life status for versions past support. A customer questionnaire asks how current your components are, and the honest answer takes effort to assemble. Catching up is now a sprint or more, and it competes with the roadmap.

Summary table

PeriodWhat accumulatesCatch-up effort
1 to 3Patch releases missedHours
4 to 6Fixable advisoriesA day or two
7 to 9Major versions, narrowing optionsDays
10 to 12Support dates, buyer questionsA sprint or more

Where to intervene

The cheapest point is always the next one. A few practices keep you off this curve:

  1. Automate pull requests for outdated dependencies so updates arrive in small pieces.
  2. Review them weekly.
  3. Match your inventory to known exploited vulnerabilities monthly.
  4. Track runtime support dates on a calendar.
  5. Schedule one major upgrade per quarter, oldest first.

What if you are already at month twelve

Do not try to do everything. Take the known exploited and reachable items first, then patches and minors in batches, then majors one at a time. The recovery plan matters more than the diagnosis.

Safeguard's SBOM and dependency scanning lists direct and transitive packages with their versions, and reachability analysis shows which outdated or vulnerable ones your code actually calls. Autonomous remediation can open fix pull requests; it is off by default and every category starts on Manual. You can try a free scan at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen. See how a fix that already exists can be applied quickly, then imagine it blocked by older versions.

Quick check

Is this timeline based on real data?

No. It is an illustration of how costs tend to compound, not a measurement. Use your own advisory and merge dates for real numbers.

What is the best single intervention?

A weekly review of automated update pull requests. It converts the curve into a flat line.

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.