Review for Source Package: src:docker.io-app
[Summary]
The docker.io-app source package builds the docker.io binary that
ships the docker CLI and docker daemon which are critical components
of the Ubuntu container stack. This package has already been treated
as a package in main for a while in regards to receiving support.
MIR team ACK under the constraint to resolve the below listed
required TODOs and as much as possible having a look at the
recommended TODOs.
This does need a security review, so I'll assign ubuntu-security.
=> The CVE history is significant. The package vendors other Go modules.
List of specific binary packages to be promoted to main: bin:docker.io
Specific binary packages built, but NOT to be promoted to main: docker-doc
Notes:
Required TODOs:
#0 - Please consider packaging upstream version 29.5.1 which ships CVE fixes.
Recommended TODOs:
#1 - The debian/README.source does not explicitly talk about refreshing
vendored code.
If the vendor code refresh does not happen implicitly while importing a
new upstream
version, please consider adding clear instructions for the refresh.
#2 - Please consider resolving the pending lintian warnings.
[Rationale, Duplication and Ownership]
- There is no other package in main providing the same functionality.
- A team is committed to own long term maintenance of this package.
=> Ubuntu Server is subscribed to the package
- The rationale given in the report seems valid and useful for Ubuntu
=> Per the upgrade strategy [1] and SRU exception [2] this package is already
treated as a package in main for a while in regards to receiving support.
[Dependencies]
OK:
- no other runtime Dependencies to MIR due to this
=> pgiz has an open MIR request [3]
=> ubuntu-fan -the Kernel team agrees on re-introducing it in main once this
MIR process is complete.
- no other build-time Dependencies with active code in the final binaries to
MIR due to this
- no -dev/-debug/-doc packages that need exclusion
=> docker-doc should remain in universe
- No dependencies in main that are only superficially tested requiring more
tests now.
Problems: None
[Embedded sources and static linking]
OK:
- does not have unexpected Built-Using entries
=> the debian/docker.io.substvars file reveals
libc:Built-Using=glibc (= 2.43-2ubuntu2)
misc:Built-Using?=golang-1.24 (= 1.24.13-2)
misc:Static-Built-Using=golang-1.24 (= 1.24.13-2)
- Go Package that follows the Debian Go packaging guidelines
- vendoring is used, but the reasoning is sufficiently explained
- golang: static builds are used, the team confirmed their commitment
to the additional responsibilities implied by static builds.
Problems:
- Includes vendored code, but the debian/README.source does not really
outline how to refresh the vendored code. Does vendor code refresh
happen implicitly as a part of importing a new upstream version?
[Security]
OK:
- does not use webkit1,2
- does not use lib*v8 directly
- does not parse data formats (files [images, video, audio,
xml, json, asn.1], network packets, structures, ...) from
an untrusted source.
=> likely to parse image manifests from untrusted image registries.
- does not expose any external endpoint (port/socket/... or similar)
- does not process arbitrary web content
- does not use centralized online accounts
- does not integrate arbitrary javascript into the desktop
- does not deal with system authentication (eg, pam), etc)
- does not deal with security attestation (secure boot, tpm, signatures)
=> docker content trust adds signatures to tags to create signed repositories
- does not deal with cryptography (en-/decryption, certificates, signing, ...)
=> vendors security/cryto packages go-crypto, go-jose and cfssl.
- this makes appropriate (for its exposure) use of established risk
mitigation features (dropping permissions, using temporary environments,
restricted users/groups, seccomp, systemd isolation features, apparmor, ...)
=> Docker provides process isolation based on namespaces, cgroups, and
seccomp.
It also includes native apparmor-profiles.
Problems:
- history of CVEs is significant
- docker.service is run as root
[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time
- test suite fails will fail the build upon error.
- does have a non-trivial test suite that runs as autopkgtest
=> fails on non-amd64 arches due to pull rate-limit restrictions
- This does not need special HW for build or test
- no new python2 dependency
- Go package, but using dh-golang
Problems: None
[Packaging red flags]
OK:
- Ubuntu-only package
- symbols tracking not applicable for this kind of code.
- debian/watch is present and looks ok (if needed, e.g. non-native)
- Upstream update history is good
- Ubuntu update history is good
- promoting this does not seem to cause issues for MOTUs that so far maintained
the package
- no massive Lintian warnings
- debian/rules is rather clean
- It is not on the lto-disabled list
Problems:
- the current release (29.5.2) is not packaged. Release 29.5.1 has CVE fixes.
- Lintian warnings
W: docker.io: groff-message an.tmac:<standard input>:468: warning: tbl
preprocessor failed,
or it or soelim was not run; table(s) likely not rendered (TE macro called
with TW register undefined)
[usr/share/man/man1/docker-run.1.gz:1]
W: docker.io: no-manual-page [usr/bin/docker-init]
W: docker.io: no-manual-page [usr/bin/docker-proxy]
W: docker-doc: old-fsf-address-in-copyright-file
W: docker.io: old-fsf-address-in-copyright-file
W: docker.io: postinst-uses-db-input [postinst:100]
[Upstream red flags]
OK:
- no Errors/warnings during the build
- no incautious use of malloc/sprintf
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH
- no use of user 'nobody' outside of tests
- no use of setuid / setgid
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit or libseed
- not part of the UI for extra checks
Problems: None
[1]
https://documentation.ubuntu.com/project/SRU/reference/exception-Docker-Updates/
[2]
https://discourse.ubuntu.com/t/ubuntu-server-gazette-issue-8-containers-steady-paths-for-agile-stacks/68680
[3] https://bugs.launchpad.net/ubuntu/+source/pigz/+bug/2150649
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2140335
Title:
[MIR] Promote docker.io-app
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/docker.io-app/+bug/2140335/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs