[Bug 1861268] security audit

Eduardo Barretto 1861268 at bugs.launchpad.net
Wed Jul 1 13:34:01 UTC 2020


I reviewed jeepney 0.4.3-1 as checked into groovy. This shouldn't be
considered a full audit but rather a quick gauge of maintainability.

jeepney is a pure Python D-Bus interface. D-Bus is an inter-process
communication system.

In its README file, jeepney maintainer mentions:
"This project is experimental, and there are a
number of more mature Python DBus bindings."

The mature options that the maintainer mention don't seem to be as
maintained as jeepney.

- No CVE History
- Build-Depends:
  - python3-all
  - python3-pytest
  - python3-sphinx
  - python3-sphinx-rtd-theme
  - python3-testpath
- prerm and postinst scripts automatically created
- No init scripts
- No systemd units
- No dbus services
- No setuid binaries
- No binaries in PATH
- No sudo fragments
- No polkit files
- No udev rules
- unit tests / autopkgtests
  - the source code comes with some tests that can be run with pytest.
  - autopkgtests are also available for this package
- No cron jobs
- Build logs:
  - No relevant errors or warnings

- Processes spawned
  - Only in test code
- No memory management
- File IO
  - Open and write a .py output file when using bindgen to auto-generate
    DBus bindings. The path argument to bindgen is actually a DBus path and
    not a filesystem path.
  - There's not much handling on the output file, you can specify a path.
  - Bindgen is a tool and not used anywhere else in the code.
- No logging
- No environment variable usage
- No use of privileged functions
- No use of cryptography / random number sources
- Use of temp files only in test code
- Use of networking
  - Use sockets to connect to DBus when using tornado, asyncio or blocking I/O.
  - Looks safe
- No use of WebKit
- No use of PolicyKit

- Coverity only found issues in javascript code from the generated documentation
- Bandit found the following issues:
  - B405: import_xml_etree - LOW
  - B314: xml.etree.ElementTree.fromstring - MEDIUM
  - B101: assert_used - LOW
  - B105: hardcoded_password_string - LOW -> false positive 
  - There are plenty of other LOW issues on test code that we are not analysing
  - Those issues are low enough to allow this MIR to continue

Although the maintainer still consider it as experimental, it is a good test
to have it on a non-LTS Ubuntu as dbus-python is obsolete.
Keep in mind that jeepney has some limitations:
https://jeepney.readthedocs.io/en/latest/limitations.html

Security team ACK for promoting jeepney to main.


** Tags added: security-review-done

** Changed in: jeepney (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 python-secretstorage in Ubuntu.
https://bugs.launchpad.net/bugs/1861268

Title:
  [MIR] jeepney

Status in jeepney package in Ubuntu:
  New
Status in python-secretstorage package in Ubuntu:
  New

Bug description:
  [Availability]
  Available in Ubuntu Focal.

  [Rationale]
  python-secretstorage, which is in main because it's a dependency of python-keyring, has been using dbus-python for a long time. However, as dbus-python's README says, it “might not be the best D-Bus binding for you to use”:
  https://gitlab.freedesktop.org/dbus/dbus-python/blob/dbus-python-1.2.16/README#L13

  Also, the Freedesktop wiki lists dbus-python among “Obsolete libraries”:
  https://www.freedesktop.org/wiki/Software/DBusBindings/#obsoletelibraries

  So the new release of secretstorage is now using jeepney, a
  lightweight pure Python D-Bus implementation instead of dbus-python
  (which was written in C).

  [Security]
  No security history.

  [Quality assurance]
  Upstream has a test suite, and it is being run during package build:
  https://launchpadlibrarian.net/459048962/buildlog_ubuntu-focal-amd64.jeepney_0.4.2-1_BUILDING.txt.gz

  There is also an autopkgtest:
  http://autopkgtest.ubuntu.com/packages/jeepney

  [Dependencies]
  Depends: python3:any
  Build-Depends: debhelper-compat (= 12), dh-python, python3-all, python3-pytest, python3-sphinx, python3-sphinx-rtd-theme, python3-testpath

  [Standards compliance]
  Standards-Version: 4.4.1

  [Maintenance]
  Maintained upstream in https://gitlab.com/takluyver/jeepney.

  Maintained in Debian by me under the umbrella of Debian Python modules
  team. Maintenance is very simple, debian/rules is just 18 lines.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/jeepney/+bug/1861268/+subscriptions



More information about the foundations-bugs mailing list