Safeguard
Developer Tools•

How long does Go support a release, and when should you upgrade?

Go supports each major release until two newer majors exist. See what that means for upgrade cadence, CI matrices and security fix planning.

Safeguard Security Team
4 min read

Each major Go release is supported until there are two newer major releases. Critical fixes, including security fixes, ship as minor revisions for supported releases. In practice that means you should be on one of the two newest majors, and you have about one release cycle of slack after a new one ships.

The rule from the release page

The Go release history page states the policy directly: each major Go release is supported until there are two newer major releases. It gives the example that Go 1.5 was supported until the Go 1.7 release. Critical problems, including critical security problems, are fixed in supported releases as needed through minor revisions such as 1.6.1.

The page lists each current release with its date and minor revisions. Read it for the newest version numbers, since they change.

What the rule implies

With two newer majors needed before a release lapses, the supported set is always two releases. When a new major arrives, the older of the two drops out, and the one before it becomes the oldest supported.

MomentSupported set
Before a new majorNewest and one before it
The day a new major shipsNew one and the previous one; the oldest drops

So the question for any service is simple: is my version one of the newest two? If not, security fixes are no longer being issued for it.

Why this matters more for compiled languages

A Go binary carries its standard library with it. A vulnerability fixed in the standard library only reaches you when you rebuild with a fixed toolchain. Updating the base image or the OS packages does nothing for a statically linked binary. That makes the toolchain version a real part of your security posture, and a thing to record.

Record it in two places: the go directive in your module file, and the toolchain used by your CI builds. Treat a mismatch as a bug.

A cadence that keeps you supported

  1. Pick a target of the newest release, or one behind it if you need a soak period.
  2. Run a CI matrix over the minimum version you support and the newest. Libraries should test both. Services only need their one production version.
  3. When a new major ships, upgrade the CI toolchain first and look for new vet or test failures.
  4. Move the service in a small pull request that changes only the toolchain, with the release notes linked.
  5. Roll out through your normal stages and then watch error rates.
  6. After a minor revision with a security fix, rebuild and redeploy, even when no source changed.

That last step is the one teams miss. If the fix is in the toolchain, your repo has no diff and your scanner may have nothing to say about source. Your build must pick the fix up.

Libraries versus services

A library author chooses the oldest Go version they will support and tells users. Choosing only the newest two is a clean policy that matches the project. Choosing older versions widens reach but means you cannot use newer language features and may ship against toolchains that no longer get fixes. State the choice in your readme.

Quick check

Is the previous Go release still supported when a new one ships?

Yes. The release is supported until two newer major releases exist, so the previous one remains supported until the next one arrives.

Do OS updates fix a Go standard library vulnerability in my binary?

No. The standard library is built into the binary, so you need to rebuild with a fixed toolchain.

Safeguard scans dependencies and builds SBOMs so you can see which toolchain and modules each service shipped with. Try the free scan at gold.safeguard.sh/scan.

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.