Review for Source Package: src:busybox

[Summary]
Busybox is a set of tiny, minimal shell utilities used in early-boot/initramfs 
operations and
recovery, and embedded systems. The src:busybox package is already in main. 
With the removal
of busybox-initramfs in favor of busybox, bin:busybox needs to be promoted to 
main. Dracut
recommends busybox.

This does need a security review, so I'll assign ubuntu-security.

List of specific binary packages to be promoted to main: bin:busybox
Specific binary packages built, but NOT to be promoted to main: 
    bin:busybox-static, bin:busybox-udeb, bin:busybox-syslogd, 
    bin:udhcpc, bin:udhcpd

Notes:
Recommended TODOs:
#0 Evaluate the open CVEs if not done already upstream.
#1 Fix autopkgtests that are failing on all arches atm.
#2 LP has multiple open crash bug-reports. Evaluate them against the latest 
release.
#3 Build log contains several compiler warnings. Please consider fixing them 
upstream.

[Rationale, Duplication and Ownership]
- There is no other package in main providing the same functionality.
  => Comes close to klibc-util - but this one links against klibc, is much 
limited
     in functionality and used only in early-boot.
- A team is committed to own long term maintenance of this package.
- The rationale given in the report seems valid and useful for Ubuntu
=> src:busybox is already in main

[Dependencies]
OK:
- no other runtime Dependencies to MIR due to this
- 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
- No dependencies in main that are only superficially tested requiring more 
tests now.

Problems: None

[Embedded sources and static linking]
OK:
- no embedded source present
- no static linking
  - busybox-static statically links glibc, but this binary is not included in 
this MIR
- does not have unexpected Built-Using entries
- not a go package, no extra constraints to consider in that regard
- Does not include vendored code

Problems: None

[Security]
OK:
- does not run a daemon as root
  => bin:busybox-syslogd, bin:udhcpd include daemons run as root, but 
main-inclusion
     is not requested for these.
- 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.
  => several individual applets parse data from an untrusted source
- 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)
  => includes applets that deal with system authentication — login, passwd, su 
etc.
- does not deal with security attestation (secure boot, tpm, signatures)
- does not deal with cryptography (en-/decryption, certificates, signing, ...)
  => implements its own TLS stack, see networking/tls.c.
- 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, ...)
  => systemd units for busybox-syslogd and udhcpd do not have security 
hardening,
     not practical to have an AppArmor profile

Problems:
- Security sensitive package, considerable CVE history including multiple 
unresolved CVEs

[Common blockers]
OK:
- does not FTBFS currently
- does have a test suite that runs at build time
- does have a non-trivial test suite that runs as autopkgtest
  => recently enabled, but failing.
- no new python2 dependency
- not a Python package
- not a Go package

Problems:
- autopkgtests failing on all arches atm: 
https://autopkgtest.ubuntu.com/packages/busybox

[Packaging red flags]
OK:
- Ubuntu does carry a delta, but it is reasonable and maintenance under control
- symbols tracking not applicable for this kind of code
  => does not ship any shared library
- debian/watch is present and looks ok
- Upstream update history is good
- Debian/Ubuntu update history is good
- the current release is packaged
- 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
- debian/control defines a correct Maintainer field

Problems: None

[Upstream red flags]
OK:
- no incautious use of malloc/sprintf (as far as we can check it)
- no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests)
- no use of user 'nobody' outside of tests
  => three hits, but they are non-consequential
- no use of setuid / setgid
  => hits point to documentation of opt-in features
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit or libseed
- no translation present, but none needed for this case (user visible)

Problems:
- Several warnings noted, here is a tabulation of the types and number of 
instances
        38      -Wunused-result
        4       -Wformat-truncation=
        3       -Wunused-but-set-variable
        1       -Wunused-function
        1       -Wreturn-local-addr
        1       -Wmaybe-uninitialized
- Multiple crash bug reports on Launchpad. Most of them are old and need to be
  re-evaluated against the latest upstream.


** Changed in: busybox (Ubuntu)
     Assignee: Pushkar Kulkarni (pushkarnk) => Ubuntu Security Team 
(ubuntu-security)

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2166895

Title:
  [MIR] busybox

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/busybox/+bug/2166895/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to