enterprise-2.20.1
July 24, 2026
The 2.20.1 stable point release fixes a panic in linkerd policy generate, and
fixes a corner case in proxy behavior where connections to undefined service
ports were incorrectly allowed if a corresponding ServiceProfile existed for
that Service. This release also updates dependencies to address reported CVEs in
underlying components, and provides optional FIPS binaries.
This release technically contains a minor breaking change, in service of
conforming to the stated documentation. Since Linkerd 2.19, the documented
behavior with respect to ports that are not declared in a Service spec is to
match the behavior of kubeproxy: Linkerd should deny connections to those ports.
However, the original implementation of this behavior incorrectly allowed
those connections if a ServiceProfile existed.
In this release, we’ve fixed Linkerd’s behavior to match the documentation: connections to ports that are not defined in the Service spec are now denied, even when a ServiceProfile exists for that Service. See Upgrade guidance below for details.
Previous release: enterprise-2.20.0.
Supported Kubernetes versions
For this release, the minimum supported Kubernetes version remains 1.31, and the maximum supported Kubernetes version remains 1.35.
Who should upgrade?
Customers who require FIPS support or need bug fixes introduced in 2.20 should upgrade when feasible.
Other users may upgrade to this release at their convenience to take advantage of the fixes and addressed CVEs.
Upgrade guidance
Customers who use ServiceProfiles and currently connect to ports on Services that are not defined in the Service spec should add those ports to the corresponding Service spec before upgrading. All other customers can upgrade safely without changes.
See the instructions in Upgrading BEL for how to upgrade.
To upgrade with BEL’s lifecycle automation operator, you will need Buoyant Extension v0.40.3 or later.
Changelog
- Breaking change: Meshed connections to a ClusterIP Service on a port absent from the Service’s spec are now denied even when a ServiceProfile is defined for that Service, matching documentation. [#15473]
- Fixed panic in
linkerd policy generatecommand, and add support for proxies injected in (the now default) native sidecar mode. - Update
golangto remediate- GO-2026-5856 (maps to CVE-2026-42505)
- GO-2026-4970 (maps to CVE-2026-39822)
- Update
golang.org/x/textto remediate- GO-2026-5970 (maps to CVE-2026-56852)
- Update
oras.land/oras-go/v2to remediate - Update
google.golang.org/grpcto remediate - Update
opentelemetryto remediate - Update
libcryptto remediate