Description
SwarmKit's Cluster-API proxy can overwrite a forwarded client's TLS identity with an intermediary manager's identity. WithMetadataForwardTLSInfo replaces outgoing metadata with a copy of the incoming metadata, discarding the redirect guard's changes when built with grpc-go 1.39 or later. During a short window after a leader change, two proxy hops through managers with inconsistent views of the leader can allow an attacker possessing a valid worker node TLS certificate and private key to obtain a manager node certificate for the attacker's own key, escalating privileges from worker to manager. Applications built with an affected SwarmKit version and grpc-go 1.39 or later are impacted.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| moby | SwarmKit | < 2.1.3, 1.12.1-0.20220307221335-616e8db4c3b0 | 2.1.3 |
| Docker | Docker Engine | 23.0.0 | — |
| moby | Moby | ≤ 2.0.0-beta.28 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | docker.io +1 | No fix yet | — |
| Ubuntu 26.04 LTS | docker.io +1 | No fix yet | — |
Show 5 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 24.04 LTS | docker.io +1 | No fix yet | — |
| Ubuntu Pro 22.04 LTS | docker.io +1 | No fix yet | — |
| Ubuntu Pro 20.04 LTS | docker.io +1 | No fix yet | — |
| Ubuntu Pro 18.04 LTS | docker.io | No fix yet | — |
| Ubuntu Pro 16.04 LTS | docker.io | No fix yet | — |
Alpine
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Alpine v3.24 | docker | 29.9.3-r0 | — |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | moby-engine | No fix yet | — |