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
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to