Skip to content
Fencer Vulns
low 3.6

CVE-2024-45310 json

runc can be confused to create empty files/directories on the host

published 2024-09-03 2 y ago modified 2026-09-10 1 mo ago also EUVD-2024-2819 , GHSA-jfvp-7x6p-h2pv , GO-2024-3110

cvss
3.6
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.3%
EPSS 0.3% chance of exploitation in 30 days, percentile 24%
public exploits
0
none known

Summary

runc is a CLI tool for spawning and running containers according to the OCI specification. runc 1.1.13 and earlier, as well as 1.2.0-rc2 and earlier, can be tricked into creating empty files or directories in arbitrary locations in the host filesystem by sharing a volume between two containers and exploiting a race with `os.MkdirAll`. While this could be used to create empty files, existing files would not be truncated. An attacker must have the ability to start containers using some kind of custom volume configuration. Containers using user namespaces are still affected, but the scope of places an attacker can create inodes can be significantly reduced. Sufficiently strict LSM policies (SELinux/Apparmor) can also in principle block this attack -- we suspect the industry standard SELinux policy may restrict this attack's scope but the exact scope of protection hasn't been analysed. This is exploitable using runc directly as well as through Docker and Kubernetes. The issue is fixed in runc v1.1.14 and v1.2.0-rc3.

Some workarounds are available. Using user namespaces restricts this attack fairly significantly such that the attacker can only create inodes in directories that the remapped root user/group has write access to. Unless the root user is remapped to an actual user on the host (such as with rootless containers that don't use `/etc/sub[ug]id`), this in practice means that an attacker would only be able to create inodes in world-writable directories. A strict enough SELinux or AppArmor policy could in principle also restrict the scope if a specific label is applied to the runc runtime, though neither the extent to which the standard existing policies block this attack nor what exact policies are needed to sufficiently restrict this attack have been thoroughly tested.

Patch / fix

  • go github.com/opencontainers/runc 1.1.14, 1.2.0-rc.3
  • linuxfoundation runc 1.1.14, 1.2.0-rc.3
  • runc Debian 14, Debian 13 1.1.15+ds1-1

debian advisories DEBIAN-CVE-2024-45310

  • kubevirt SLE Module for Containers 15 SP7 1.7.0-150700.3.16.2
  • apptainer SLES 15 SP6-LTSS, SLE Module for HPC 15 SP7, openSUSE Leap 15.6 1.4.5-150600.4.12.1
  • squashfuse SLES 15 SP6-LTSS, SLE Module for HPC 15 SP7, openSUSE Leap 15.6 0.5.0-150600.3.2.1
  • runc SLE Module for Containers 15 SP6, SLE Module for Basesystem 15 SP7, SLE Micro 5.5 +17 more 1.2.6-150000.73.2
  • runc Linux Micro 6.0 1.2.6-1.1
  • runc Linux Micro 6.1 1.2.6-slfo.1.1_1.1
  • runc Linux Micro 6.0 1.1.14-1.1
  • runc SLE Module for Containers 12 1.1.14-16.55.1

suse advisories SUSE-SU-2026:0479-1SUSE-SU-2026:0439-1SUSE-SU-2025:02198-2SUSE-SU-2025:02198-1SUSE-SU-2025:20335-1SUSE-SU-2025:20353-1

  • ctop openSUSE Leap 16.0 0.7.7-bp160.2.1
  • cadvisor openSUSE Leap 16.0 0.60.3-bp160.1.1
  • cadvisor openSUSE Tumbleweed 0.60.3-1.1
  • apptainer openSUSE Tumbleweed 1.4.5-5.1
  • govulncheck-vulndb openSUSE Tumbleweed 0.0.20250807T150727-1.1
  • runc openSUSE Tumbleweed 1.2.0~rc3-1.1

opensuse advisories openSUSE-SU-2026:21379-1openSUSE-SU-2026:21265-1openSUSE-SU-2026:11153-1openSUSE-SU-2026:10842-1openSUSE-SU-2025:15424-1openSUSE-SU-2024:14312-1

  • runc Alpine 3.24, Alpine 3.23, Alpine 3.22 +2 more 1.1.14-r0

alpine advisories ALPINE-CVE-2024-45310

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • buildah Azure Linux 3.0 1.41.4-2
  • podman Azure Linux 3.0 5.6.1-2
  • runc Azure Linux 3.0 1.2.2-1
  • moby-runc CBL-Mariner 2.0 1.1.9-8

azure linux advisories AZL-48519AZL-48531AZL-48543AZL-48590

Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2024-45310 updated cvss 3.6

runc: runc can be tricked into creating empty files/directories on host

  • Red Hat Enterprise Linux 7 runc Red Hat Enterprise Linux 8 runc Red Hat Enterprise Linux 9 runc Red Hat OpenShift Container Platform 3.11 runc Red Hat OpenShift Container Platform 4 openshift/ose-rhel-coreos-8, openshift/ose-rhel-coreos-9
    affected: no fix available “Fix deferred”
  • Red Hat Ceph Storage 9 rhceph 1771399331
    fixed: vendor fix RHSA-2026:3406
  • Red Hat Openshift Data Foundation 4.22 odf4/cephcsi-rhel9 1782932114, odf4/odf-cli-rhel9 1783537001, odf4/mcg-core-rhel9 1783536000, odf4/odf-drbd-rhel9 1783537392, odf4/odf-console-rhel9 1783537586, odf4/devicefinder-rhel9 1782932104, +21 more
    fixed: vendor fix RHSA-2026:37387
  • Red Hat Ceph Storage 9 rhceph 1771398877, rhceph 1771399022, rhceph 1771399060, rhceph 1771399158, rhceph 1771816028 Red Hat Openshift Data Foundation 4.22 odf4/mcg-operator-bundle 1783538986, odf4/ocs-operator-bundle 1783539176, odf4/odf-operator-bundle 1783539513, odf4/cephcsi-operator-bundle 1783538908, odf4/odr-hub-operator-bundle 1783539596, odf4/rook-ceph-operator-bundle 1783539714, +10 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.32% chance of exploitation in the next 30 days, higher than 24% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 3.6 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N
GitHub 3.1 3.6 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N
NVD 3.1 3.6 CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:L/A:N

Affected packages

ecosystem package affected fixed in
go github.com/opencontainers/runc
<1.1.14
>=1.2.0-rc.1, <1.2.0-rc.3
1.1.14
1.2.0-rc.3

Affected products

  • opencontainers runc

Classification

Weakness
  • CWE-363 Race Condition Enabling Link Following
  • CWE-61 UNIX Symbolic Link (Symlink) Following

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.

CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.