runc: LSM labels can be bypassed with malicious config using dummy procfs files
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.2.8, 1.3.3, 1.4.0-rc.3, 1.13.0
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 1 proof of concept on GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
runc is a CLI tool for spawning and running containers according to the OCI specification. In versions 1.2.7, 1.3.2 and 1.4.0-rc.2, an attacker can trick runc into misdirecting writes to /proc to other procfs files through the use of a racing container with shared mounts (we have also verified this attack is possible to exploit using a standard Dockerfile with docker buildx build as that also permits triggering parallel execution of containers with custom shared mounts configured). This redirect could be through symbolic links in a tmpfs or theoretically other methods such as regular bind-mounts. While similar, the mitigation applied for the related CVE, CVE-2019-19921, was fairly limited and effectively only caused runc to verify that when LSM labels are written they are actually procfs files. This issue is fixed in versions 1.2.8, 1.3.3, and 1.4.0-rc.3.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- opencontainers runc
fixed in 1.2.8 · through 1.2.7; fixed in 1.3.3 · through 1.3.2; fixed in 1.4.0-rc.3 · through 1.4.0-rc.2
- github.com/opencontainers/runcGo
fixed in 1.2.8; From 1.3.0-rc.1 · fixed in 1.3.3; From 1.4.0-rc.1 · fixed in 1.4.0-rc.3
- github.com/opencontainers/selinuxGo
fixed in 1.13.0
- github.com/opencontainers/runcGo
fixed in 1.2.8
- github.com/opencontainers/runcGo
From 1.3.0-rc.1 · fixed in 1.3.3
- github.com/opencontainers/runcGo
From 1.4.0-rc.1 · fixed in 1.4.0-rc.3
References 21
GitHub · opencontainers/runc
- Advisory GHSA-cgrx-mc8f-2prm
- Advisory GHSA-qw9x-cqr3-wc7r
- Advisory GHSA-9493-h29p-rfm2
- Commit ff94f999
- Commit ff6fe132
- Commit ed6b1693
- Commit db19bbed
- Commit d61fd29d
- Commit d40b3439
- Commit b3dd1bc5
- Commit 77d217c7
- Commit 77889b56
- Commit 6fc19144
- Commit 4b37cd93
- Commit 44a0fcf6
- Commit 435cc81b
- Commit 3f925525
- RELEASES.md
- Commit a41366e7
- Commit fdcc9d3c