GitHub Advisoryadvisory · Go
GHSA-m8cg-xc2p-r3fc rootless: `/sys/fs/cgroup` is writable when cgroupns isn't unshared in runc
LOW
Official page ↗
- Aliases
- CVE-2023-25809
- Ecosystem
- Go
- Packages
- github.com/opencontainers/runc
- Severity
- Low
- CVSS vector
- CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:C/C:N/I:N/A:L
- Weaknesses
- CWE-281
- Reviewed
- 2023-03-30
Affected packages
• Go github.com/opencontainers/runc: < 1.1.5 → fixed in 1.1.5
Description
Impact
It was found that rootless runc makes `/sys/fs/cgroup` writable in following conditons:
1. when runc is executed inside the user namespace, and the `config.json` does not specify the cgroup namespace to be unshared (e.g.., `(docker|podman|nerdctl) run --cgroupns=host`, with Rootless Docker/Podman/nerdctl)
2. or, when runc is executed outside the user namespace, and `/sys` is mounted with `rbind, ro` (e.g., `runc spec --rootless`; this condition is very rare)
A container may gain the write access to user-owned cgroup hierarchy `/sys/fs/cgroup/user.slice/...` on the host .
Other users's cgroup hierarchies are not affected.
Patches
v1.1.5 (planned)
Workarounds
• Condition 1: Unshare the cgroup namespace (`(docker|podman|nerdctl) run --cgroupns=private)`. This is the default behavior of Docker/Podman/nerdctl on cgroup v2 hosts.
• Condition 2 (very rare): add `/sys/fs/cgroup` to `maskedPaths`
Related
Alias · CVE (1)
- CVE-2023-25809 runc is a CLI tool for spawning and running containers according to the OCI specification. vulnerability
Weakness · CWE (1)
- CWE-281 Improper Preservation of Permissions weakness