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

Reply via email to