CVE-2022-1708 Node DOS by way of memory exhaustion through ExecSync request in CRI-O
An attacker with Kube API access can exhaust node memory or disk space via large ExecSync command outputs in CRI-O.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2022-1708?
CVE-2022-1708 is a high-severity denial of service vulnerability in Fedoraproject Fedora, published on 7 Jun 2022. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
A vulnerability was found in CRI-O that causes memory or disk space exhaustion on the node for anyone with access to the Kube API. The ExecSync request runs commands in a container and logs the output of the command. This output is then read by CRI-O after command execution, and it is read in a manner where the entire file corresponding to the output of the command is read in. Thus, if the output of the command is large it is possible to exhaust the memory or the disk space of the node when CRI-O reads the output of the command. The highest threat from this vulnerability is system availability.
Which versions are affected by CVE-2022-1708?
7 open source packages ship an affected version, including github.com/cri-o/cri-o. It affects 4 products.
| Package | Affected | Fixed in |
|---|---|---|
github.com/cri-o/cri-o Go | All versions | 1.22.5, 1.23.3, 1.24.1 |
github.com/cri-o/cri-o Go | All versions | 1.22.5 |
github.com/cri-o/cri-o Go | All versions | 1.22.5 |
github.com/cri-o/cri-o Go | From 1.23.0 | 1.23.3 |
github.com/cri-o/cri-o Go | From 1.23.0 | 1.23.3 |
github.com/cri-o/cri-o Go | From 1.24.0 | 1.24.1 |
1 more packages
github.com/cri-o/cri-o Go | From 1.24.0 | 1.24.1 |
Linux distribution packages (33)
cri-o Red Hat:openshift:3.11::el7 | All versions | 0:1.11.16-0.17.rhaos3.11.git4c0a8ad.el7 |
cri-o-debuginfo Red Hat:openshift:3.11::el7 | All versions | 0:1.11.16-0.17.rhaos3.11.git4c0a8ad.el7 |
conmon Red Hat:openshift:4.10::el8 | All versions | 2:2.0.29-3.rhaos4.10.el8 |
conmon-debuginfo Red Hat:openshift:4.10::el8 | All versions | 2:2.0.29-3.rhaos4.10.el8 |
conmon-debugsource Red Hat:openshift:4.10::el8 | All versions | 2:2.0.29-3.rhaos4.10.el8 |
cri-o Red Hat:openshift:4.10::el8 | All versions | 0:1.23.3-3.rhaos4.10.git5fe1720.el8 |
cri-o-debuginfo Red Hat:openshift:4.10::el8 | All versions | 0:1.23.3-3.rhaos4.10.git5fe1720.el8 |
cri-o-debugsource Red Hat:openshift:4.10::el8 | All versions | 0:1.23.3-3.rhaos4.10.git5fe1720.el8 |
conmon Red Hat:openshift:4.7::el7 | All versions | 2:2.0.29-3.rhaos4.7.el7 |
conmon-debuginfo Red Hat:openshift:4.7::el7 | All versions | 2:2.0.29-3.rhaos4.7.el7 |
cri-o Red Hat:openshift:4.7::el7 | All versions | 0:1.20.8-3.rhaos4.7.gitb9df556.el7 |
cri-o-debuginfo Red Hat:openshift:4.7::el7 | All versions | 0:1.20.8-3.rhaos4.7.gitb9df556.el7 |
conmon Red Hat:openshift:4.7::el8 | All versions | 2:2.0.29-3.rhaos4.7.el8 |
conmon-debuginfo Red Hat:openshift:4.7::el8 | All versions | 2:2.0.29-3.rhaos4.7.el8 |
conmon-debugsource Red Hat:openshift:4.7::el8 | All versions | 2:2.0.29-3.rhaos4.7.el8 |
cri-o Red Hat:openshift:4.7::el8 | All versions | 0:1.20.8-3.rhaos4.7.gitb9df556.el8 |
cri-o-debuginfo Red Hat:openshift:4.7::el8 | All versions | 0:1.20.8-3.rhaos4.7.gitb9df556.el8 |
cri-o-debugsource Red Hat:openshift:4.7::el8 | All versions | 0:1.20.8-3.rhaos4.7.gitb9df556.el8 |
conmon Red Hat:openshift:4.8::el7 | All versions | 2:2.0.29-3.rhaos4.8.el7 |
cri-o Red Hat:openshift:4.8::el7 | All versions | 0:1.21.8-3.rhaos4.8.gitd7fbb0d.el7 |
conmon Red Hat:openshift:4.8::el8 | All versions | 2:2.0.29-3.rhaos4.8.el8 |
cri-o Red Hat:openshift:4.8::el8 | All versions | 0:1.21.8-3.rhaos4.8.gitd7fbb0d.el8 |
conmon Red Hat:openshift:4.9::el7 | All versions | 2:2.0.29-3.rhaos4.9.el7 |
conmon-debuginfo Red Hat:openshift:4.9::el7 | All versions | 2:2.0.29-3.rhaos4.9.el7 |
cri-o Red Hat:openshift:4.9::el7 | All versions | 0:1.22.5-3.rhaos4.9.gitb6d3a87.el7 |
cri-o-debuginfo Red Hat:openshift:4.9::el7 | All versions | 0:1.22.5-3.rhaos4.9.gitb6d3a87.el7 |
conmon Red Hat:openshift:4.9::el8 | All versions | 2:2.0.29-3.rhaos4.9.el8 |
conmon-debuginfo Red Hat:openshift:4.9::el8 | All versions | 2:2.0.29-3.rhaos4.9.el8 |
conmon-debugsource Red Hat:openshift:4.9::el8 | All versions | 2:2.0.29-3.rhaos4.9.el8 |
cri-o Red Hat:openshift:4.9::el8 | All versions | 0:1.22.5-3.rhaos4.9.gitb6d3a87.el8 |
cri-o-debuginfo Red Hat:openshift:4.9::el8 | All versions | 0:1.22.5-3.rhaos4.9.gitb6d3a87.el8 |
cri-o-debugsource Red Hat:openshift:4.9::el8 | All versions | 0:1.22.5-3.rhaos4.9.gitb6d3a87.el8 |
conmon SUSE:Enterprise Storage 6 | All versions | 2.1.3-150100.3.9.1 |
Products include Fedoraproject Fedora, Kubernetes Cri-O, Redhat Enterprise Linux, Redhat Openshift Container Platform.
How do I fix CVE-2022-1708?
Upgrade github.com/cri-o/cri-o to a fixed version for your release line: 1.22.5, 1.23.3 or 1.24.1.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2022-1708 being exploited?
There is no known exploitation of CVE-2022-1708 in the wild and no public exploit code.
Other vulnerabilities in Fedoraproject Fedora
Sources
Also known as AZL-37071, GHSA-fcm2-6c3h-pg6j, GO-2022-0480, MGASA-2023-0240, RHSA-2022:4943, RHSA-2022:4951 and 8 more.