Comment 2 for bug 2052809

Revision history for this message
James Page (james-page) wrote :

Review for Source Package: bpftrace

[Summary]
Generally looks OK for promotion to main; due to the intended use of
this tool a security team review is required.

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.

Required TODOs:
- Enable test suite execution for build and autopkgtests

Recommended TODOs:
- The package should get a team bug subscriber before being promoted
  (detailed in original submission)

[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.
The rationale given in the report seems valid and useful for Ubuntu

[Dependencies]
OK:
- bpftrace checked with `check-mir`
- no -dev/-debug/-doc packages that need exclusion
- No dependencies in main that are only superficially tested requiring
  more tests now.

Problems:
- one of the (potentially auto-generated) dependencies (Depends
  and Recommends) that are present after build are not in main
  - Binary only promotion of libclang1-17 to main will be required.
- Dependency on bpfcc covered under MIR bug 2052813

[Embedded sources and static linking]
OK:
- no embedded source present
- no static linking aside from a headers only library use (see below)
- 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
- Does not include vendored code

Problems (maybe):
- Package BD's on libcereal-dev which is a headers only library that is
  not in main.

[Security]
OK:
- history of CVEs does not look concerning
  - NO CVE history - https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=bpftrace
- does not run a daemon as root
- 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.
- 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)
- 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, ...)

Problems:
- None

Note:
Although bpftrace ticks the boxes above it is obviously designed to dive
deep into the internals of Linux so as such probably deserves a security
team review.

[Common blockers]
OK:
- does not FTBFS currently
- does not need special HW for build or test
- no new python2 dependency

Problems:
- does not have a test suite that runs at build time
- does not have a non-trivial test suite that runs as autopkgtest

TODO:
- package seems to have some tests - investigate running these during package
  build as as autopkgtests.

[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- 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
- 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 which just a few overrides
- It is not on the lto-disabled list

Problems: None

[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 / setgid
- no important open bugs (crashers, etc) in Debian or Ubuntu
- no dependency on webkit, qtwebkit, seed or libgoa-*
- not part of the UI for extra checks
- no translation present, but none needed for this case (user visible)?

Problems: None