CVE-2023-6476: Cri-o: pods are able to break out of resource confinement on cgroupv2
Impact What kind of vulnerability is it? Who is impacted? All versions of CRI-O running on cgroupv2 nodes. Unchecked access to an experimental annotation allows a container to be unconfined. Back in 2021, support was added to support an experimental annotation that allows a user to request special resources in cgroupv2. It was supposed to be gated by an experimental annotation: io.kubernetes.cri-o.UnifiedCgroup, which was supposed to be filtered from the list of allowed annotations . However, there is a bug in this code which allows any user to specify this annotation, regardless of whether it's enabled on the node. The consequences of this are a pod can specify any amount of memory/cpu and get it, circumventing the kubernetes scheduler, and potentially be able to DOS a node. Patches Has the problem been patched? What versions should users upgrade to? 1.29.1, 1.28.3, 1.27.3
Workarounds Is there a way for users to fix or remediate the vulnerability without upgrading? use cgroupv1
References Are there any links users can visit to find out more?
Other sources
A flaw was found in CRI-O that involves an experimental annotation leading to a container being unconfined. This may allow a pod to specify and get any amount of memory/cpu, circumventing the kubernetes scheduler and potentially resulting in a denial of service in the node.
— NVD
A vulnerability in CRI-O that involves an experimental annotation leading to a container being unconfined. Back in 2021, Giuseppe put up a PR to add support for an experimental annotation that allows a user to request special resources in cgroupv2. It was supposed to be gated by an experimental annotation: io.kubernetes.cri-o.UnifiedCgroup, which was supposed to be filtered from the list of allowed annotations . However, there is a bug in this code which allows any user to specify this annotation, regardless of whether it's enabled on the node.
The consequences of this are a pod can specify any amount of memory/cpu and get it, circumventing the kubernetes scheduler, and potentially be able to DOS a node.
— Red Hat
Cri-o: pods are able to break out of resource confinement on cgroupv2
— Microsoft
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/cri-o/cri-oto a version that resolves this vulnerability.Fixed in 1.27.3 - Upgrade
Upgrade
go/github.com/cri-o/cri-oto a version that resolves this vulnerability.Fixed in 1.28.3 - Upgrade
Upgrade
go/github.com/cri-o/cri-oto a version that resolves this vulnerability.Fixed in 1.29.1 - Upgrade
Upgrade
redhat/cri-oto a version that resolves this vulnerability.Fixed in 1.29.1 - Upgrade
Upgrade
redhat/cri-oto a version that resolves this vulnerability.Fixed in 1.28.3 - Upgrade
Upgrade
redhat/cri-oto a version that resolves this vulnerability.Fixed in 1.27.3 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 1.22.3-10 - Upgrade
Upgrade
cri-oto a version that resolves this vulnerability.Fixed in 1.29.1 - Upgrade
Upgrade
cri-oto a version that resolves this vulnerability.Fixed in 1.28.3 - Upgrade
Upgrade
cri-oto a version that resolves this vulnerability.Fixed in 1.27.3 - Compensating control
Use cgroupv1 (the issue affects all versions of CRI-O running on cgroupv2 nodes).
Event History
Frequently Asked Questions
What is the severity of CVE-2023-6476?
The severity of CVE-2023-6476 is classified as critical due to its potential impact on system security.
How do I fix CVE-2023-6476?
To fix CVE-2023-6476, upgrade to CRI-O version 1.27.3, 1.28.3, or 1.29.1.
Who is impacted by CVE-2023-6476?
CVE-2023-6476 impacts all versions of CRI-O running on cgroupv2 nodes.
What happens if I don’t address CVE-2023-6476?
If CVE-2023-6476 is not addressed, containers may be unconfined, leading to potential security breaches.
Is CVE-2023-6476 present in Red Hat products?
Yes, CVE-2023-6476 is present in specific versions of Red Hat OpenShift Container Platform and Red Hat Enterprise Linux.