MIR: libssh2
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
libssh2 (Ubuntu) |
Fix Released
|
High
|
Unassigned |
Bug Description
[Availability]
The package libssh2 is already in Ubuntu universe (and even was in main for a time).
It builds on the architectures it is designed to work on:
i386 amd64 armhf arm64 s390x ppc64el riscv64
Link to package: https:/
[Rationale]
The package libssh2 is required in Ubuntu main as a dependency of src:cargo,
which will be the object of its own MIR.
It should NOT be promoted to main until the cargo MIR is accepted.
It would be great and useful to community/processes to have the
package libssh2 in Ubuntu main, but there is no definitive deadline.
[Security]
libssh2 had 13 known security issues in the past:
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
- https:/
CVE-2019-3855 to -3863 have all been reported by Chris Coulson, presumable from an earlier security review from a previous MIR?
- no `suid` or `sgid` binaries
- no executables in `/sbin` and `/usr/sbin`
- 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 (as a library)
[Quality assurance - maintenance]
- The package is maintained well in Debian/Ubuntu and has not too many
and long term critical bugs open
- Ubuntu https:/
- Debian https:/
- 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
Build logs: https:/
The package runs an autopkgtest, and is currently passing on
all architectures but i386 (never succeeded there, fails due to depending gcc:i386)
The autopkgtests are just the unit tests run against the installed library.
[Quality assurance - packaging]
- debian/watch is present and works (but outputs a warning, which trips up tracker.debian.org somehow)
- debian/control defines a correct Maintainer field
Here are the logs of a recent rebuild:
https:/
Note that there are massive deprecation warnings as the package uses OpenSSL APIs that have been deprecated in OpenSSL 3.0. Upstream doesn't have concrete plans to handle OpenSSL 3.0 yet. All other warnings are only on example code.
I wasn't able to produce a --pedantic lintian run on my local builder as the package
FTBFS on it (presumably due to recent changes in openssh-server breaking things on my system, since it builds
fine on LP builders). I'm still investigating that, but in the mean time, there are these results:
https:/
The package doesn't have any overrides.
- This package does not rely on obsolete or about to be demoted packages.
- This package has no python2 or GTK2 dependencies
- The package will not be installed by default
- Packaging and build is easy:
https:/
[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
- Team is already subscribed to the package
- 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 recently:
https:/
[Background information]
The Package description explains the package well
Link to upstream project: https:/
Regarding the feature duplication between libssh1 and libssh2, the Rust bindings for the latter are well-maintained and see substantial usage, whereas the former are barely used:
https:/
https:/
Given that FFI bindings are one of the trickiest area of Rust in terms of unsafe code, I believe it safer not to try and port cargo to libssh1.
description: | updated |
Changed in libssh2 (Ubuntu): | |
assignee: | nobody → Ioanna Alifieraki (joalif) |
tags: | added: sec-1351 |
Review for Package: libssh2
[Summary]
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: libssh2-1, libssh2-1-dev
Notes:
- The package should get a team bug subscriber before being promoted
[Duplication]
There is libssh already in main. libssh and libssh2 provide more or less the same
functionality. However, the argument presented by the bug reporter that libssh2
is better maintained and substantially more used versus libssh is satisfying and
therefore promoting libssh2 to main is justified.
[Dependencies]
OK:
- no other Dependencies to MIR due to this
- libssh2 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
OK:
- 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 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 deal with cryptography (en-/decryption, certificates, signing, ...)
- does open a port/socket
- 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
- no new python2 dependency
Problems: None
[Packaging red flags]
OK:
- Ubuntu does not carry a delta (existing patches come from debian)
- symbols tracking is in place
- d/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
- d/rules is rather clean
- It is not on the lto-disabled list
Problems: None
[Upstream red flags]
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 pre...