TMAegisBeta
More rules for docker

Docker

TMA-DOCKER-5.29

Ensure that the PIDs cgroup limit is used

MediumLevel 1Automateddocker

Description

Without a PIDs cgroup limit a fork bomb in one container can exhaust host process slots. Flags containers whose PidsLimit is unset, 0 or -1. The audit inspects every running container (docker ps -q) and prints the offending names; a host with no running containers is compliant.

How it is checked

Audit method: Shell command

shell
ids=$(docker ps -q) || exit 1; [ -z "$ids" ] && { echo compliant; exit 0; }; out=$(docker inspect --format '{{.Name}} {{.HostConfig.PidsLimit}}' $ids) || exit 1; bad=$(printf '%s\n' "$out" | awk '$2=="<nil>" || $2=="0" || $2=="-1"{print $1}'); [ -z "$bad" ] && echo compliant || printf '%s\n' "$bad"
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Redeploy with --pids-limit (e.g. --pids-limit=100; compose: 'pids_limit: 100') or set "default-pids-limit" in daemon.json.

Properties

Operating systems
Any
Tags
dockerruntime
Reference
CIS Docker Benchmark v1.9.0 - 5.29 Ensure that the PIDs cgroup limit is used

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target docker