v0.12.0
Added
-
The
initsubcommand generates a starter.compose-lint.ymlfrom a Compose
file's findings (ADR-011). Each finding becomes a per-service
exclude_servicesentry with a placeholder reason for triage — never a global
enabled: false, so a service added later still trips the rule. All
severities are emitted and annotated; it writes.compose-lint.ymlin the
current directory by default (-o PATHto override), refuses to overwrite an
existing config without--force, writes nothing for a clean file, and sends
status to stderr. Takes a singleFILE. Barecompose-lint <file>and
compose-lint checkare unaffected. -
CL-0022 flags
tmpfs:mounts that omitnoexec,nosuid, ornodev
(MEDIUM). A writable, executable in-memory mount is a payload-staging surface,
especially underread_only: truewhere tmpfs is often the only writable
path. Covers the short string/listtmpfs:form (the longvolumes:form
can't express these flags through Compose); the message names the missing
flags.compose-lint fixappends them in place, preserving existing options
likesize=, with a caveat thatnoexecis behavior-changing. -
CL-0023 flags services that enable an escape-adjacent
net.*sysctl —
ip_forward, IPv6forwarding,accept_source_route, and ICMP
accept_redirects/send_redirects(MEDIUM). Enabling these turns the
container into a network pivot, most acutely with host networking (CL-0008)
or multiple networks. Handles the map and listsysctls:forms; a value of
0and unlisted sysctls are not flagged. No auto-fix — the parameter is set
deliberately when present, so removal is left to manual review.
Changed
- CL-0011 now flags the
PERFMONcapability (HIGH), completing the pair split
out ofSYS_ADMINin Linux 5.8 (BPFshipped in 0.10.0). A service with
cap_add: [PERFMON]that previously passed will now report a finding.