GHSA-5j5w-g665-5m35 Ambiguous OCI manifest parsing

Not scored Published

Ambiguous OCI manifest parsing allows attackers to bypass digest verification, potentially leading to code execution or security bypass in containerd.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is GHSA-5j5w-g665-5m35?

GHSA-5j5w-g665-5m35 is an unsafe deserialization vulnerability in github.com/containerd/containerd, published on 18 Nov 2021. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

Impact

In the OCI Distribution Specification version 1.0.0 and prior and in the OCI Image Specification version 1.0.1 and prior, manifest and index documents are ambiguous without an accompanying Content-Type HTTP header. Versions of containerd prior to 1.4.12 and 1.5.8 treat the Content-Type header as trusted and deserialize the document according to that header. If the Content-Type header changed between pulls of the same ambiguous document (with the same digest), the document may be interpreted differently, meaning that the digest alone is insufficient to unambiguously identify the content of the image.

Patches

This issue has been fixed in containerd 1.4.12 and 1.5.8. Image pulls for manifests that contain a “manifests” field or indices which contain a “layers” field are rejected.

Workarounds

Ensure you only pull images from trusted sources.

References

https://github.com/opencontainers/distribution-spec/security/advisories/GHSA-mc8v-mgrf-8f4m https://github.com/opencontainers/image-spec/security/advisories/GHSA-77vh-xpmg-72qh

For more information

If you have any questions or comments about this advisory:

Which versions are affected by GHSA-5j5w-g665-5m35?

5 open source packages ship an affected version, including github.com/containerd/containerd.

PackageAffectedFixed in
github.com/containerd/containerd GoAll versions1.4.12, 1.5.8
github.com/containerd/containerd GoAll versions1.4.12
github.com/containerd/containerd GoAll versions1.4.12
github.com/containerd/containerd GoFrom 1.5.01.5.8
github.com/containerd/containerd GoFrom 1.5.01.5.8

How do I fix GHSA-5j5w-g665-5m35?

Upgrade github.com/containerd/containerd to a fixed version for your release line: 1.4.12 or 1.5.8.

Upgrade, and only deserialise data from trusted sources or with an allow-list of types. More about Unsafe deserialization.

Is GHSA-5j5w-g665-5m35 being exploited?

There is no known exploitation of GHSA-5j5w-g665-5m35 in the wild and no public exploit code.

Sources

Also known as GO-2022-0360.

Is GHSA-5j5w-g665-5m35 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free