[MIR] dasbus

Bug #2025912 reported by Mateus Rodrigues de Morais
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
dasbus (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

[Availability]
The package dasbus is already in Ubuntu universe.
The package dasbus build for the architectures it is designed to work on.
It currently builds and works for architectures all
Link to package https://launchpad.net/ubuntu/+source/dasbus

[Rationale]
- The package dasbus is required for our nvme over fabric story
- It is a dependency of the package nvme-stas (MIR at TBD)
- dasbus provides a pythonic interface to the D-Bus message
  bus system. dasbus can be used to access remote objects
  and also for object publication.
- This DBus library is written in Python 3, based on GLib and inspired by
  pydbus.
- This package installs the library for Python 3.
- We would like to include it in main in order for the Canonical
  foundations team to give official support on this package.
- There is no other/better way to solve this that is already in main or
  should go universe->main instead of this.
- It would be great and useful to community/processes to have the
  package nvme-stas in Ubuntu main, but there is no definitive deadline.

[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
  (filters, scanners, plugins, UI skins, ...)

[Quality assurance - function/usage]
- The package works well right after install

[Quality assurance - maintenance]
- The package is maintained well in Debian/Ubuntu/Upstream and does
  not have too many, long-term & critical, open bugs
- Ubuntu https://bugs.launchpad.net/ubuntu/+source/dasbus/+bug
- Debian https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=dasbus
- Upstream's bug tracker https://github.com/rhinstaller/dasbus/issues
- The package does not deal with exotic hardware we cannot support

[Quality assurance - testing]
- The package runs a test suite of 232 tests on build time, if it fails
  it makes the build fail (see attached build log)
- The package runs an autopkgtest, and is currently passing on
  all supported architectures, link to test logs
  https://autopkgtest.ubuntu.com/packages/dasbus
- The package does have not failing autopkgtests right now

[Quality assurance - packaging]
- debian/watch is present and works
- debian/control defines a correct Maintainer field
- Ubuntu does not carry a delta
- This package does not yield any lintian Warnings
- 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 higher than medium
- Packaging and build is easy, link to debian/rules
  https://git.launchpad.net/ubuntu/+source/dasbus/tree/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 will be foundations-bugs
- Team is not yet, but will subscribe to the package before promotion
- This does not use static builds
- This does not use vendored code
- This package is not rust based
- The package was test rebuilt in PPA or sbuild recently (build log
  attached)

[Background information]
The Package description explains the package well
Upstream Name is dasbus
Link to upstream project https://github.com/rhinstaller/dasbus

Tags: sec-2401
Revision history for this message
Mateus Rodrigues de Morais (mateus-morais) wrote :
description: updated
description: updated
description: updated
Changed in dasbus (Ubuntu):
assignee: nobody → Ioanna Alifieraki (joalif)
Revision history for this message
Ioanna Alifieraki (joalif) wrote :
Download full text (3.3 KiB)

Review for Source Package: dasbus

[Summary]
The package looks good but it needs a sec review.
MIR team ACK
This does need a security review, so I'll assign ubuntu-security
List of specific binary packages to be promoted to main: python3-dasbus
Specific binary packages built, but NOT to be promoted to main: None

Notes:
- The package should get a team bug subscriber before being promoted

[Duplication]
Dasbus package is required in main as a dependency of nvme-stats.
There is no other package in main providing the same functionality.

[Dependencies]
OK:
- no other Dependencies to MIR due to this
  - dasbus checked with `check-mir`
  - all dependencies can be found in `seeded-in-ubuntu` (already in main)
  - 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 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: 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)
- does not deal with cryptography (en-/decryption, certificates, signing, ...)

Problems:
- does parse data formats (files [images, video, audio,
  xml, json, asn.1], network packets, structures, ...) from
  an untrusted source.

[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: None

[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 slow
- 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
- 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 (the language has no direct MM)
- 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, qt...

Read more...

Changed in dasbus (Ubuntu):
assignee: Ioanna Alifieraki (joalif) → nobody
assignee: nobody → Ubuntu Security Team (ubuntu-security)
tags: added: sec-2401
Revision history for this message
Amir Naseredini (sahnaseredini) wrote :

I reviewed dasbus 1.7-1 as checked into lunar. This shouldn't be
considered a full audit but rather a quick gauge of maintainability.

dasbus is a DBus library written in python.

- CVE History
  - no CVE found
- Build-Depends
  - python builtins (`os`, `threading`, and `logging`)
  - uses these two - minor bug without security impacts
    - dasbus/xml.py:from xml.etree import ElementTree
    - dasbus/xml.py:from xml.dom import minidom
- pre/post inst/rm scripts
  - autogenerated by `dh_python3`
- init scripts
  - none
- systemd units
  - none
- dbus services
  - none
- setuid binaries
  - none
- binaries in PATH
  - none
- sudo fragments
  - none
- polkit files
  - none
- udev rules
  - none
- unit tests / autopkgtests
  - it has a comprehensive set of unit tests
  - tests can be run locally and `autopkgtest` is available
- cron jobs
  - none
- Build logs
  - nothing major

- Processes spawned
  - none
- Memory management
  - none
- File IO
  - nothing significant or concerning
- Logging
  - logging is used fairly well, but sparse
- Environment variable usage
  - none
- Use of privileged functions
  - none
- Use of cryptography / random number sources etc
  - nothing concerning
- Use of temp files
  - none
- Use of networking
  - nothing concerning
- Use of WebKit
  - none
- Use of PolicyKit
  - none

- Any significant cppcheck results
  - none
- Any significant Coverity results
  - none
- Any significant shellcheck results
  - none
- Any significant bandit results
  - minor bug without security impacts
- Any significant govulncheck results
  - N/A
- Any significant Semgrep results
  - minor bug without security impacts

- The package is well-maintained by developers and issues are addressed shortly
after being created.
- There is a minor bug regarding the validation of the `xml` which does not
seem to have security implications
(https://github.com/rhinstaller/dasbus/issues/121#issue-1867395487).
- It is recommended for the owning team to consider porting `dasbus` from
`elementtree` to `defusedxml`, as `bandit` suggests

Security team ACK for promoting dasbus to main.

Changed in dasbus (Ubuntu):
assignee: Ubuntu Security Team (ubuntu-security) → Amir Naseredini (sahnaseredini)
assignee: Amir Naseredini (sahnaseredini) → nobody
Revision history for this message
Lukas Märdian (slyon) wrote :

This is ready for promotion.
- MIR ACK in comment #2
- SEC ACK in comment #3

=> Fix Committed & subscribing ~ubuntu-archive.

It also unlocks nvme-stas (LP: #2026591)

Changed in dasbus (Ubuntu):
status: New → Fix Committed
Revision history for this message
Steve Langasek (vorlon) wrote :

Override component to main
nvme-stas 2.2.2-1 in mantic: universe/misc -> main
nvme-stas 2.2.2-1 in mantic amd64: universe/net/optional/100% -> main
nvme-stas 2.2.2-1 in mantic arm64: universe/net/optional/100% -> main
nvme-stas 2.2.2-1 in mantic armhf: universe/net/optional/100% -> main
nvme-stas 2.2.2-1 in mantic i386: universe/net/optional/100% -> main
nvme-stas 2.2.2-1 in mantic ppc64el: universe/net/optional/100% -> main
nvme-stas 2.2.2-1 in mantic riscv64: universe/net/optional/100% -> main
nvme-stas 2.2.2-1 in mantic s390x: universe/net/optional/100% -> main
dasbus 1.7-2 in mantic: universe/misc -> main
python3-dasbus 1.7-2 in mantic amd64: universe/python/optional/100% -> main
python3-dasbus 1.7-2 in mantic arm64: universe/python/optional/100% -> main
python3-dasbus 1.7-2 in mantic armhf: universe/python/optional/100% -> main
python3-dasbus 1.7-2 in mantic i386: universe/python/optional/100% -> main
python3-dasbus 1.7-2 in mantic ppc64el: universe/python/optional/100% -> main
python3-dasbus 1.7-2 in mantic riscv64: universe/python/optional/100% -> main
python3-dasbus 1.7-2 in mantic s390x: universe/python/optional/100% -> main
16 publications overridden.

Changed in dasbus (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.