CVE-2026-85747: Distribution: Client `manifests.Get()` does not verify returned content against requested digest
registry/client.(*manifests).Get(ctx, dgst, …) fetches a manifest by digest but never hashes the returned body and compares it against the requested digest. A malicious or compromised registry, or any MITM on the registry connection, can serve arbitrary manifest bytes in response to a digest-pinned request and the client returns the substituted content transparently to the caller. Any application relying on digest pinning for supply-chain integrity — image policy controllers, mirrors, pull-through caches — is silently undermined. The bundled pull-through proxy (registry/proxy/proxymanifeststore.go) is itself an unguarded consumer and is directly exploitable.
References
- github.com/advisories/GHSA-685w-q87j-wqw3
- github.com/distribution/distribution/commit/8f91c26c8888a95a36c2357a6e30bc15d4dd76d3
- github.com/distribution/distribution/commit/960439b09f342cdeb8f1c0e18e8c7349bdcfbf80
- github.com/distribution/distribution/releases/tag/v3.1.2
- github.com/distribution/distribution/security/advisories/GHSA-685w-q87j-wqw3
- nvd.nist.gov/vuln/detail/CVE-2026-85747
Code Behaviors & Features
Detect and mitigate CVE-2026-85747 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →