CVE-2024-21626: runc vulnerable to container breakout through process.cwd trickery and leaked fds
(updated )
In runc 1.1.11 and earlier, due to an internal file descriptor leak, an attacker could cause a newly-spawned container process (from runc exec) to have a working directory in the host filesystem namespace, allowing for a container escape by giving access to the host filesystem (“attack 2”). The same attack could be used by a malicious image to allow a container process to gain access to the host filesystem through runc run (“attack 1”). Variants of attacks 1 and 2 could be also be used to overwrite semi-arbitrary host binaries, allowing for complete container escapes (“attack 3a” and “attack 3b”).
Strictly speaking, while attack 3a is the most severe from a CVSS perspective, attacks 2 and 3b are arguably more dangerous in practice because they allow for a breakout from inside a container as opposed to requiring a user execute a malicious image. The reason attacks 1 and 3a are scored higher is because being able to socially engineer users is treated as a given for UI:R vectors, despite attacks 2 and 3b requiring far more minimal user interaction (just reasonable runc exec operations on a container the attacker has access to). In any case, all four attacks can lead to full control of the host system.
References
- access.redhat.com/errata/RHSA-2024:0645
- access.redhat.com/errata/RHSA-2024:0662
- access.redhat.com/errata/RHSA-2024:0666
- access.redhat.com/errata/RHSA-2024:0670
- access.redhat.com/errata/RHSA-2024:0684
- access.redhat.com/errata/RHSA-2024:0717
- access.redhat.com/errata/RHSA-2024:0748
- access.redhat.com/errata/RHSA-2024:0752
- access.redhat.com/errata/RHSA-2024:0755
- access.redhat.com/errata/RHSA-2024:0756
- access.redhat.com/errata/RHSA-2024:0757
- access.redhat.com/errata/RHSA-2024:0758
- access.redhat.com/errata/RHSA-2024:0759
- access.redhat.com/errata/RHSA-2024:0760
- access.redhat.com/errata/RHSA-2024:0764
- access.redhat.com/errata/RHSA-2024:10149
- access.redhat.com/errata/RHSA-2024:10520
- access.redhat.com/errata/RHSA-2024:10525
- access.redhat.com/errata/RHSA-2024:10841
- access.redhat.com/errata/RHSA-2024:1270
- access.redhat.com/errata/RHSA-2024:4597
- access.redhat.com/errata/RHSA-2025:0115
- access.redhat.com/errata/RHSA-2025:0650
- access.redhat.com/errata/RHSA-2025:1711
- access.redhat.com/errata/RHSA-2025:2441
- access.redhat.com/errata/RHSA-2025:2701
- access.redhat.com/errata/RHSA-2025:2710
- access.redhat.com/security/cve/CVE-2024-21626
- bugzilla.redhat.com/show_bug.cgi?id=2258725
- github.com/advisories/GHSA-xr7r-f8xq-vfvv
- github.com/opencontainers/runc/commit/02120488a4c0fc487d1ed2867e901eeed7ce8ecf
- github.com/opencontainers/runc/releases/tag/v1.1.12
- github.com/opencontainers/runc/security/advisories/GHSA-xr7r-f8xq-vfvv
- lists.debian.org/debian-lts-announce/2024/02/msg00005.html
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/2NLXNE23Q5ESQUAI22Z7A63JX2WMPJ2J
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/SYMO3BANINS6RGFQFKPRG4FIOJ7GWYTL
- nvd.nist.gov/vuln/detail/CVE-2024-21626
- security.access.redhat.com/data/csaf/v2/vex/2024/cve-2024-21626.json
- www.vicarius.io/vsociety/posts/leaky-vessels-part-1-cve-2024-21626
Code Behaviors & Features
Detect and mitigate CVE-2024-21626 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →