This was co-reviewed by @joalif and myself. Review for Package: src:ubuntu-advantage-desktop-daemon [Summary] ubuntu-advantage-desktop-daemon is a rather small, new daemon that is providing a DBus API for desktop application to talk with the UA client. The daemon is run as a systemd service (as root), but it applies several isolation techniques to lock the attack surface down to a minimum. 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 not need a security review. List of specific binary packages to be promoted to main: ubuntu-advantage-desktop-daemon Specific binary packages built, but NOT to be promoted to main: Notes: Does not need a security review as the only red flag (root-daemon) is arleady being mitigated in the systemd service. Required TODOs: - The package is installing a binary in /usr/lib/x86_64-linux-gnu/ubuntu-advantage-desktop-daemon Please let us know if there is any good reason for choosing this location or install the file at /usr/libexec instead. Recommended TODOs: - The package should get a team bug subscriber before being promoted - Try further locking down the systemd service (root daemon), e.g. by running it under its own (dynamic) user/group: https://0pointer.net/blog/dynamic-users-with-systemd.html [Duplication] There is no other package in main providing the same functionality. [Dependencies] OK: - no other Dependencies to MIR due to this - checked with check-mir - not listed in seeded-in-ubuntu - none of the (potentially auto-generated) dependencies (Depends and Recommends) that are present after build are not in main - 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 odd Built-Using entries - not a go package, no extra constraints to consider in that regard - No vendoring used, all Built-Using are in main Problems: None [Security] OK: - history of CVEs does not look concerning (the package is pretty new, though, first published in Dec, 2021) - does not use webkit1,2 - does not use lib*v8 directly - does not parse data formats - does not open a port/socket - does not process arbitrary web content - 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) Problems: - uses centralized online accounts, but that's the intended purpose of UA - does run a daemon as root, but uses systemd security features to confine it I wonder if that could be further confined by making it run in its own (dynamic) user and group. c.f. https://www.freedesktop.org/software/systemd/man/systemd.exec.html#User/Group%20Identity [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 not have test suite that runs as autopkgtest, but manual test plan is specified - no new python2 dependency Problems: None [Packaging red flags] OK: - Ubuntu does not carry a delta (it's a native package) - symbols tracking not applicable for this kind of code (doesn't ship a library) - d/watch not present but it is a native package - 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 - d/rules is rather clean - It is not on the lto-disabled list Problems: - (lintian) P: ubuntu-advantage-desktop-daemon: executable-in-usr-lib usr/lib/x86_64-linux-gnu/ubuntu-advantage-desktop-daemon Please move the file to /usr/libexec [Upstream red flags] OK: - no Errors/warnings during the build - 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 - no use of setuid - no important open bugs (crashers, etc) in Debian or Ubuntu - no dependency on webkit, qtwebkit, seed or libgoa-* - part of the UI, desktop file, not needed as it just provides a dbus API - translation present Problems: None