VDB
Sign up
LOW2.5

GHSA-m8cg-xc2p-r3fc

rootless: `/sys/fs/cgroup` is writable when cgroupns isn't unshared in runc

Quick fix

GHSA-m8cg-xc2p-r3fc — github.com/opencontainers/runc: upgrade to the fixed version with the command below.

go get github.com/opencontainers/runc@v1.1.5

Details

### 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`

Are you affected?

Enter the version of the package you're using.

Affected packages

Go/github.com/opencontainers/runc
Introduced in: 0Fixed in: 1.1.5
Fixgo get github.com/opencontainers/runc@v1.1.5

References