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.
Published: 2026-10-13
Score: 6.8 Medium
EPSS: n/a
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

The client implementation in Distribution fails to verify that the content received for a digest‑pinned request matches the requested digest. Because the response body is not hashed and compared, an attacker can replace or substitute the manifest returned from the registry, even though the Docker‑Content‑Digest header claims the requested value. This weakness, classified as CWE‑354, breaks the integrity guarantee expected from a signed container image and permits delivery of malicious content to the runtime environment. The consequence is that an unauthenticated or MITM attacker could cause the target system to download, load, and execute code from a compromised or spoofed container manifest, effectively enabling remote code execution.

Affected Systems

The vulnerability affects the distribution:distribution project, the open‑source container registry toolkit. All released versions prior to v3.1.2 are susceptible. The fix was released in version v3.1.2 and later releases are not affected.

Risk and Exploitability

The CVSS score of 6.8 indicates a moderate‑to‑high severity; the EPSS score is not available, and the vulnerability is not listed in the CISA KEV catalog. The most likely attack vector is a network‑level manipulation of a registry response or a compromised registry endpoint, allowing an attacker to inject a forged manifest during the image pull process. Because the flaw permits content substitution without the client performing integrity validation, exploitation does not require privileged access to the target system; any user who can direct a client's registry traffic to a malicious or compromised registry endpoint can trigger the vulnerability.

Generated by OpenCVE AI on October 13, 2026 at 20:39 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the distribution:distribution client to v3.1.2 or newer, which includes server‑side hash validation during manifest retrieval
  • Disable or configure the pull‑through proxy to enforce digest verification or bypass caching until the client version is upgraded
  • Use image signature and content trust mechanisms (such as Cosign or Notary) to verify that manifests and layers originate from trusted sources before executing them

Generated by OpenCVE AI on October 13, 2026 at 20:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 13 Oct 2026 20:30:00 +0000

Type Values Removed Values Added
First Time appeared Distribution
Distribution distribution
Vendors & Products Distribution
Distribution distribution

Tue, 13 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
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.
Title Distribution: Client `manifests.Get()` does not verify returned content against requested digest
Weaknesses CWE-354
References
Metrics cvssV3_1

{'score': 6.8, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:H/A:N'}


Subscriptions

Distribution Distribution
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-10-13T18:20:56.539Z

Reserved: 2026-09-04T14:50:16.720Z

Link: CVE-2026-85747

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-13T19:21:02.100

Modified: 2026-10-13T19:27:44.137

Link: CVE-2026-85747

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-13T20:15:14Z

Weaknesses
  • CWE-354

    Improper Validation of Integrity Check Value