GitHub Advisoryadvisory · Go

GHSA-m8cg-xc2p-r3fc rootless: `/sys/fs/cgroup` is writable when cgroupns isn't unshared in runc

LOW Published 2023-03-30 Modified 2023-03-30 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

References