[Bug 1956617] Re: [MIR] protobuf-c
Christian Ehrhardt
1956617 at bugs.launchpad.net
Thu Jan 27 13:47:46 UTC 2022
Review for Package: protobuf-c
[Summary]
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 need a security review, so I'll assign ubuntu-security
List of specific binary packages to be promoted to main: protobuf-c-compiler
Specific binary packages built, but NOT to be promoted to main: libprotobuf-c1 (at least not needed for the current case, but should be ok to promote if needed later)
Notes:
- Needed in fwupd due to https://github.com/fwupd/fwupd/pull/3609
Required TODOs:
- please add a debian/watch file to help auto-detecting new versions
Recommended TODOs:
- consider adding an autopkgtest, at least running the self-tests in
autopkgtest or better some use case using the lib/compiler
- have a look at the compiler warnings if we could help upstream to fix those
[Duplication]
This is rather interesting in this case, as there are many users and
implementations of protobuf in general. The "main" src:protobuf is the core
project and provides c++, python, ruby, java, ... bindings.
https://developers.google.com/protocol-buffers
But no "C" in that, so protobuf-c exists.
But TBH also several other projects. Of the 6 listed by upstream:
https://github.com/protocolbuffers/protobuf/blob/master/docs/third_party.md
Only two are packaged upb and protobuf-c, both in universe.
Also - as outlined in the report - formerly protobuf-c was in main.
So there is similarity, but no duplication problem here.
[Dependencies]
OK:
- no other Dependencies to MIR due to this
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
Problems: None
[Security]
OK:
- history of CVEs does not look concerning
- does not run a daemon as root
- does not use webkit1,2
- does not use lib*v8 directly
- does not open a port/socket
- 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)
Problems:
- does parse data formats
Depending on where it is used that could be from external sources.
Also the current reason for the MIR is the use to update firmware which usually
runs with high privilege, so being able to inject some protobuf data on the
download could then - if it breaks in the handling - cause quite some issues.
I think a security review is needed here.
Also confirmed by the fact that the more common lib "protobuf" also had a bunch
of CVEs in the past.
[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.
- if special HW does prevent build/autopkgtest is there a test plan, code,
log provided?
- if a non-trivial test on this level does not make sense (the lib alone
is only doing rather simple things), is the overall solution (app+libs)
extensively covered i.e. via end to end autopkgtest ?
- no new python2 dependency
Problems:
- does not have a non-trivial test suite that runs as autopkgtest
[Packaging red flags]
OK:
- Ubuntu does not carry a delta
- symbols tracking is in place
- Upstream update history is slow but ok
- Debian/Ubuntu update history is as slow as upstream
- 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:
- d/watch is present and looks ok (if needed, e.g. non-native)
[Upstream red flags]
RULE: flag common issues:
RULE: - if you see anything else odd, speak up and ask for clarification
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
- no use of setuid
- 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
- Errors/warnings during the build - nothing severe, but there are some
-Wdeclaration-after-statement and -Wc99-c11-compat which we all know are
informational now, but could be a problem later on.
** Changed in: protobuf-c (Ubuntu)
Assignee: Christian Ehrhardt (paelzer) => Ubuntu Security Team (ubuntu-security)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to protobuf-c in Ubuntu.
https://bugs.launchpad.net/bugs/1956617
Title:
[MIR] protobuf-c
Status in protobuf-c package in Ubuntu:
New
Bug description:
[Availability]
The package protobuf-c is already in Ubuntu universe, and was in main some years ago.
The package protobuf-c builds for the architectures it is designed to work on.
It currently builds and works for architectures: amd64 arm64 armhf i386 ppc64el riscv64 s390x
Link to package https://launchpad.net/ubuntu/+source/protobuf-c
[Rationale]
- The package protobuf-c is required in Ubuntu main for fwupd 1.7.x to handle firmware updates for Logitech devices that use logitech_bulkcontroller such as their 4k webcams.
- The feature is only going to be useful to users owning such hardware but it is important for those users.
[Security]
- No CVEs/security issues in this software in the past
- no `suid` or `sgid` binaries
- no executables in `/sbin` and `/usr/sbin`
- Package does not install services, timers or recurring jobs
- Packages does not open privileged ports (ports < 1024)
- Packages does not contain extensions to security-sensitive software
[Quality assurance - function/usage]
- The package works well right after install
[Quality assurance - maintenance]
- The package is maintained well in Debian/Ubuntu and has no bugs open in Debian or Ubuntu
- Ubuntu https://bugs.launchpad.net/ubuntu/+source/protobuf-c/+bug
- Debian https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=protobuf-c
- The package does not deal with exotic hardware we cannot support
[Quality assurance - testing]
- The package runs a test suite on build time, if it fails
it makes the build fail, link to build log https://launchpadlibrarian.net/464904971/buildlog_ubuntu-focal-amd64.protobuf-c_1.3.3-1_BUILDING.txt.gz
- The package does not run an autopkgtest but there is no reason they
shouldn't be added.
[Quality assurance - packaging]
- debian/watch is not present, no reason it shouldn't have one though
- This package has some minor lintian warnings
# lintian --pedantic
running with root privileges is not recommended!
W: protobuf-c-compiler: no-manual-page usr/bin/protoc-c
W: protobuf-c-compiler: no-manual-page usr/bin/protoc-gen-c
P: protobuf-c source: package-uses-old-debhelper-compat-version 12
P: protobuf-c source: silent-on-rules-requiring-root
P: protobuf-c source: update-debian-copyright 2019 vs 2020 [debian/copyright:65]
and some warnings about long lines in upstream sources
- Lintian overrides are not present
- This package does not rely on obsolete or about to be demoted packages.
- This package has no python2 or GTK2 dependencies
- The package will be installed by default, but does not ask debconf
questions
- Packaging and build is easy, link to d/rules
https://salsa.debian.org/edmonds/protobuf-c/-/blob/master/debian/rules
[UI standards]
- Application is not end-user facing (does not need translation)
[Dependencies]
- No further depends or recommends dependencies that are not yet in main
[Standards compliance]
- This package correctly follows FHS and Debian Policy
[Maintenance/Owner]
- Owning Team should be foundations since they own fwupd
- Team is not yet, but will subscribe to the package before promotion
- This does not use static builds
- This does not use vendored code
[Background information]
The Package description explains the package well
Upstream Name is protobuf-c
Link to upstream project https://github.com/protobuf-c/protobuf-c
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/protobuf-c/+bug/1956617/+subscriptions
More information about the foundations-bugs
mailing list