Review for Source Package: rust-cargo-auditable [Summary]
The package looks good, it will need a security review since it audits binaries for known bugs or security vulnerabilities by embedding data about the dependency tree in JSON format into a dedicated linker section of the compiled executable. I've based my review on MP [1]. The package uses static builds but the owning team is aware of its implications and commits to providing fixes. Grepping the code for setuid/setgid we get results but these come from vendored code (rustix, libc). The latest upstream release is v0.7.4 which is not packaged. Lastly there are 2 important bugs [2], [3] open upstream. 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: cargo-auditable Specific binary packages built, but NOT to be promoted to main: <None> Recommended TODOs: #1 Consider bumping the version in debian/ubuntu and packaging the latest v0.7.4 #2 Consider working with upstream to address bugs [2], [3] - The package has a team bug subscriber before being promoted [1] https://code.launchpad.net/~maxgmr/ubuntu/+source/rust-cargo-auditable/+git/rust-cargo-auditable/+ref/lp2142252 [2] https://doc.rust-lang.org/cargo/reference/resolver.html#feature-resolver-version-2 [3] https://github.com/rust-secure-code/cargo-auditable/issues/38 [Rationale, Duplication and Ownership] There is no other package in main providing the same functionality. Foundations team is committed to own long term maintenance of this package. The rationale given in the report seems valid and useful for Ubuntu [Dependencies] OK: - no other runtime Dependencies to MIR due to this - no other build-time Dependencies with active code in the final binaries to MIR due to this - 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: - not a go package, no extra constraints to consider in that regard - Rust package that has all dependencies vendored. It does neither have *Built-Using (after build). Nor does the build log indicate built-in sources that are missed to be reported as Built-Using. - rust package using dh_cargo (dh ... --buildsystem cargo) - Includes vendored code, the package has documented how to refresh this code at debian/README.source Problems: - static building [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 expose any external endpoint (port/socket/... or similar) - 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, ...) - this makes appropriate (for its exposure) use of established risk mitigation features (dropping permissions, using temporary environments, restricted users/groups, seccomp, systemd isolation features, apparmor, ...) Problems: - does not 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 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 good - 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: - the current release is not packaged [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' outside of tests - no use of setuid / setgid - no dependency on webkit, qtwebkit or libseed - not part of the UI for extra checks - no translation present, but none needed for this case (user visible)? Problems: - use of setuid/segid in verdored code (rustix - important open bugs (crashers, etc) in Debian or Ubuntu: - https://doc.rust-lang.org/cargo/reference/resolver.html#feature-resolver-version-2 - https://github.com/rust-secure-code/cargo-auditable/issues/38 ** Bug watch added: github.com/rust-secure-code/cargo-auditable/issues #38 https://github.com/rust-secure-code/cargo-auditable/issues/38 ** Changed in: rust-cargo-auditable (Ubuntu Resolute) Assignee: Ioanna Alifieraki (joalif) => (unassigned) ** Changed in: rust-cargo-auditable (Ubuntu Resolute) Assignee: (unassigned) => Ubuntu Security Team (ubuntu-security) -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2142252 Title: [MIR] cargo needs cargo-auditable as runtime dependency To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/rust-cargo-auditable/+bug/2142252/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
