[Bug 1956617] Re: [MIR] protobuf-c

Mark Esler 1956617 at bugs.launchpad.net
Mon Jul 11 15:53:47 UTC 2022


I reviewed protobuf-c 1.3.3-1 as checked into focal, protobuf-c
1.3.3-1ubuntu2 as checked into jammy, and protobuf-c 1.4.0 from
upstream's git repo.

"This is protobuf-c, a C implementation of the Google Protocol Buffers
data serialization format. It includes libprotobuf-c, a pure C library
that implements protobuf encoding and decoding, and protoc-c, a code
generator that converts Protocol Buffer .proto files to C descriptor
code, based on [Google's] original protoc."

- CVE History:
  - two recent vulnerabilities
  - one was assigned CVE-2022-33070
  - patched in v1.4.1
- Build-Depends?
  - protobuf
  - ldd /usr/bin/protoc-gen-c
    - linux-vdso.so.1                                                       
    - libprotobuf.so.23 => /lib/x86_64-linux-gnu/libprotobuf.so.23        
    - libprotoc.so.23 => /lib/x86_64-linux-gnu/libprotoc.so.23
    - libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6
    - libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1      
    - libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6
    - libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1
    - /lib64/ld-linux-x86-64.so.2
    - libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6                
  - ldd /usr/lib/x86_64-linux-gnu/libprotobuf-c.so.1.0.0      
    - no additional dependencies    
- pre/post inst/rm scripts?
  - none
- init scripts?
  - none
- systemd units?
  - none
- dbus services?
  - none
- setuid binaries?
  - none
- binaries in PATH?
  - /usr/bin/protoc-gen-c                          
  - proto-c -> protoc-gen-c
- sudo fragments?
  - none
- polkit files?
  - none
- udev rules?
  - none
- unit tests / autopkgtests?
  - requested in https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1004962
- cron jobs?
  - none
- Build logs:
  - OK
  - No errors. All warnings are trivial.
- Processes spawned?
  - only for documentation generation
- Memory management?
  - See vulnerabilities above
  - Use of memcpy, malloc, free, and memset LGTM
  - An OOB memory access exists in test file
  - Defensive programming reasoning commented throughout code
- File IO?
  - none
- Logging?
  - none
- Environment variable usage?
  - none (outside of debian build scripts)
- Use of privileged functions?
  - none
- Use of cryptography / random number sources etc?
  - none
- Use of temp files?
  - none
- Use of networking?
  - none
- Use of WebKit?
  - none
- Use of PolicyKit?
  - none
- Any significant cppcheck results?
  - none
- Any significant Coverity results?
  - none
  - OOB in a test
- Any significant shellcheck results?
  - none
- Any significant bandit results?
  - none

Packages in Main already use protobuf-c as part of their build (such as
sudo). The two recent vulnerabilities in protobuf-c's history were
patched promptly. One of the patches is by sudo's maintainer. protobuf-c
is also tracked by Google's OSS-Fuzz. The authors of protobuf-c took a
lot of care to handle input and protect memory. It is well written and a
good candidate for Main.

Security team ACK for promoting protobuf-c to Main.

** Changed in: protobuf-c (Ubuntu)
     Assignee: Ubuntu Security Team (ubuntu-security) => (unassigned)

-- 
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