I reviewed containerd 1.3.1-0ubuntu1 as checked into focal. This shouldn't be
considered a full audit but rather a quick gauge of maintainability.
containerd is a daemon that manages the complete container lifecycle of its
host system. Containerd controls runc.
- No CVE History:
- Build-Depends
- debhelper (>= 9)
- go-md2man
- golang-go (>= 2:1.10~)
- golang-race-detector-runtime
- libbtrfs-dev | btrfs-progs (<< 4.16.1~)
- libseccomp-dev
- pkg-config
- pre/post rm and postinst scripts added automatically
- No init scripts
- systemd units
- containerd.service - add overlay module to kernel and runs
/usr/bin/containerd. Also sets some limits on number of processes,
number of cores and files.
- No dbus services
- No setuid binaries
- binaries in PATH
- /usr/bin/containerd
- /usr/bin/containerd-shim
- /usr/bin/containerd-shim-runc-v1
- /usr/bin/containerd-shim-runc-v2
- /usr/bin/containerd-stress
- /usr/bin/ctr
- No sudo fragments
- No polkit files
- No udev rules
- unit tests / autopkgtests
- different tests are available in the source code
- imake test (run automatically during build): non-integration tests
- make root-test: non-integration tests (requires root)
- make integration: run all tests, including integration tests (requires
root)
- also autopkgtest available (basic smoke DEP8 test)
- http://autopkgtest.ubuntu.com/packages/containerd
- No cron jobs
- Build logs:
- No compilation errors or warnings.
- E: Lintian run failed (policy violation)
Lintian: fail
- Processes spawned
- in pkg/process/ it implements its own way of Exec'ing processes
- nsexec.c and cloned_binary.c: from runc, we commented about this function in
runc MIR, nothing new.
- vendor/github.com/containerd/go-runc/runc.go: Execute process inside the
container.
- Memory management
- Only in vendored code.
- File IO
- Some File IO in archive/tar*.go, looks ok.
- Other File IO are mostly done in vendored code.
- Logging
- uses logrus for logging, much like runc.
- Environment variable usage
- only in vendored code.
- Use of privileged functions
- setuid, setgid and setresuid from runc code.
- Lchown used in some places to change the uid and gid of the named file.
- No use of cryptography / random number sources etc
- Use of temp files mainly in test code.
- Use of networking
- Only found something on:
- runtime/v1/shim/client/client.go
- runtime/v2/shim/publisher.go
- cmd/containerd/command/publish.go
- client.go
- looks ok
- No use of WebKit
- No use of PolicyKit
- Coverity results
- We end up finding a possible bug, we are working with upstream to get it
investigated.
Security team ACK for promoting containerd to main.
Unassigning the Security Team.
** Changed in: containerd (Ubuntu)
Assignee: Ubuntu Security Team (ubuntu-security) => (unassigned)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1819761
Title:
[MIR] containerd
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/containerd/+bug/1819761/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs