Description
Distribution is a toolkit to pack, ship, store, and deliver container content. Prior to 3.1.2, registry/client.(*manifests).Get() reads a manifest returned for a digest-pinned request and passes it to distribution.UnmarshalManifest without hashing the body against the requested digest, allowing a malicious or intercepted registry response to substitute attacker-chosen manifest content even when Docker-Content-Digest claims the requested value. The bundled pull-through proxy in registry/proxy/proxymanifeststore.go can cache and re-serve the substituted manifest. This issue is fixed in version 3.1.2.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| distribution | distribution | < 3.1.2 | — |
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.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | docker-registry | No fix yet | — |
| Debian 13 | docker-registry | No fix yet | — |
| Debian 12 | docker-registry | No fix yet | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.10 | docker-registry | No fix yet | — |
| Ubuntu 24.04 LTS | docker-registry | No fix yet | — |
| Ubuntu 20.04 LTS | docker-registry | No fix yet | — |
Show 4 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 26.04 LTS | docker-registry | No fix yet | — |
| Ubuntu Pro 22.04 LTS | docker-registry | No fix yet | — |
| Ubuntu Pro 18.04 LTS | docker-registry | No fix yet | — |
| Ubuntu Pro 16.04 LTS | docker-registry | No fix yet | — |
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | argocd-image-updater | 1.3.1-r3 | — |
| Wolfi rolling | gitness | 3.3.0-r46 | — |
| Wolfi rolling | k3d +38 | No fix yet | — |
| Wolfi rolling | kots | 1.132.0-r6 | — |
| Wolfi rolling | kubescape-operator | 0.2.220-r0 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| Go | github.com/distribution/distribution | all versions | — | GO-2026-6778 |
| Go | github.com/distribution/distribution/v3 | < 3.1.2 | 3.1.2 | GHSA-685w-q87j-wqw3 |
| Go | github.com/docker/distribution | <= 2.8.3 | — | GHSA-685w-q87j-wqw3 |
| Go | github.com/docker/distribution | all versions | — | GO-2026-6778 |