MIR: src:neutron [Summary]
Neutron is an OpenStack project that provides “network-connectivity as a service” between interface devices (e.g vNICs) that are managed by other services like nova. It implements the OpenStack networking API. Neutron is already in main. This is a re-review. MIR team ACK under the constraint to, as much as possible, having a look at the recommended TODOs. This does need a security review, so I'll assign ubuntu-security. List of specific binary packages to be promoted to main: All Specific binary packages built, but NOT to be promoted to main: None Notes: #0 - The neutron packaging on Ubuntu seems to be independent of neutron on Debian. There is no evidence of periodic syncing (or merging). #1 - The latest upstream release (v27.0.1) is not packaged yet. Recommended TODOs: #2 - Neutron includes SysV templates that are run as systemd units. What User are these run as? Please confirm that they are run as a non-root user. Please refer to the Security section. #3 - Though the neutron package seems to build successfully on resolute on Launchpad, I experienced a test hang twice, while building in a local resolute chroot. Please see the Common Blockers section below. Could this be an infrastructure/environment issue? #4 - There are a significant number of lintian warnings that need to be addressed. Please refer to the Packaging Red Flags section. #5 - There are uses of setuid/setgid outside of tests, as noted in the Upstream Red Flags section. Can this be addressed vis-a-vis the MIR requirement of not using setuid/setgid? #6 - The dhcp agent runs dnsmasq as user nobody. Can this be addressed in regard to the MIR requirement of not using user `nobody` outside of tests. [Rationale, Duplication, Ownership] OK: - There is no other package in main providing the same functionality. - A team is committed to own long term maintenance of this package. - The rationale given in the report seems valid and useful for Ubuntu. Problems: None [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 - does not have unexpected Built-Using entries - not a go package, no extra constraints to consider in that regard - not a rust package, no extra constraints to consider in that regard Problems: None [Security] OK: - does not run a daemon as root => Includes two native systemd units that are run with User=neutron. - 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. => the API does parse JSON, but only on authorization - does not expose any external endpoint (port/socket/... or similar) => exposes port TCP 9696 for public/internal/admin endpoints (neutron-api) => when the DHCP agent is used, the spawned dnsmasq binds UDP 67 within the DHCP namespace by design - 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) - does not deal with cryptography (en-/decryption, certificates, signing, ...) - 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, ...) => oslo.privsep is used to run privileged operations. Problems: - does not run a daemon as root => Neutron includes SysV init templates that are exposed as systemd units. What User are these run as? - history of CVEs does look concerning => Neutron has received 30 CVE reports. Though these have been medium-low in priority, I would request a Security review of them. [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 - This does not need special HW for build or test - no new python2 dependency - Python package, but using dh_python Problems: - FTBFS in a resolute chroot on my laptop intermittently => https://pastebin.ubuntu.com/p/fChQ2Hv2KC/ [Packaging Red Flags] OK: - symbol tracking not relevant for this package - debian/watch is present and looks ok - Upstream update history is good - Debian/Ubuntu update history is good - promoting this does not seem to cause issues for MOTUs that so far maintained the package => this is already in main - debian/rules is rather clean - It is not on the lto-disabled list (fix, or the workaround should be directly in the package, see https://launchpad.net/ubuntu/+source/lto-disabled-list) Problems: - Ubuntu does carry a delta, but it is reasonable and maintenance under control => The neutron packaging on Ubuntu seems to be independent of the same on Debian https://salsa.debian.org/openstack-team/services/neutron. - the current release is not packaged => 27.0.1 seems to be the latest release. - lintian warnings => there are quite a few lintian warnings reported. See https://pastebin.ubuntu.com/p/f3frVDwYf3/ [Upstream Red Flags] OK: - no Errors/warnings during the build - no incautious use of malloc/sprintf (the language has no direct MM) - no use of sudo, gksu, pkexec, or LD_LIBRARY_PATH (usage is OK inside tests) - 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 - no translation present, but none needed for this case (user visible)? Problems: - use of setuid/setgid => Is this justified? neutron/agent/linux/daemon.py:46:def setuid(user_id_or_name): neutron/agent/linux/daemon.py:53: os.setuid(new_uid) neutron/agent/linux/daemon.py:60:def setgid(group_id_or_name): neutron/agent/linux/daemon.py:67: os.setgid(new_gid) neutron/agent/linux/daemon.py:111: setgid(group) neutron/agent/linux/daemon.py:114: setuid(user) - possible use of user 'nobody' outside of tests => if the dhcp agent is used, dnsmasq runs as nobody. ** Changed in: neutron (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/2121564 Title: [MIR] neutron To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/neutron/+bug/2121564/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
