[MIR] fdk-aac-free

Bug #1977614 reported by Jeremy Bícha
22
This bug affects 3 people
Affects Status Importance Assigned to Milestone
fdk-aac-free (Ubuntu)
Incomplete
Undecided
Jeremy Bícha

Bug Description

[Availability]
The package fdk-aac-free is already in Ubuntu universe.

The package fdk-aac-free builds for the architectures it is designed to work on.
It currently builds and works for all Ubuntu architectures except i386 (where it is not needed).
Link to package https://launchpad.net/ubuntu/+source/fdk-aac-free

[Rationale]
- fdk-aac-free is required by gnome-remote-desktop to allow audio forwarding from the Ubuntu desktop host to the remote client.

- It would be great and useful to have fdk-aac-free 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

[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 open bug reports except for this MIR and a "move to main" bug in Debian
  - Ubuntu https://bugs.launchpad.net/ubuntu/+source/fdk-aac-free
  - Ubuntu https://bugs.launchpad.net/ubuntu/+source/fdk-aac (the older library this was forked from)
  - Debian https://bugs.debian.org/cgi-bin/pkgreport.cgi?src=fdk-aac
- The package does not deal with exotic hardware we cannot support

[Quality assurance - testing]
- The package does not run tests at build time because upstream doesn't provide one

- The package runs an autopkgtest, and is currently passing on all architectures (except i386), link to test logs:
https://autopkgtest.ubuntu.com/packages/fdk-aac-free

- A manual test case has been added to this wiki page:
https://wiki.ubuntu.com/DesktopTeam/TestPlans/RemoteDesktop

[Quality assurance - packaging]
- debian/watch is present. It wasn't working so I pushed a trivial fix to the Salsa packaging repo.

- No significant Lintian warnings or errors (see comment 6)

- 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/multimedia-team/fdk-aac-free/-/blob/debian/latest/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 desktop-packages
- Team is not yet, but will subscribe to the package before promotion

- This does not use static builds
- This does not use vendored code

- The package successfully built during the most recent test rebuild

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

However, we are using Fedora's forked version. The upstream can be found at
https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped

fdk-aac is currently in Debian non-free. It has been in the Debian NEW queue since January 2022 waiting for ftpmasters to review it for a move to Debian main. Some discussion (from people who aren't ftpmasters) at https://bugs.debian.org/981285
In mid-2023, we decided to rename the source package to fdk-aac-free and reuploaded to Debian NEW but there still has not been any comment from ftpmasters. Meanwhile, the renamed source package was accepted into Ubuntu universe.

Compared to the original fdk-aac, the Fedora fork strips the newer High Efficiency and High Efficiency v2 profiles with very low bitrates. Those profiles would not have been used by gnome-remote-desktop anyway since gnome-remote-desktop uses 96 kbps for its AAC implementation.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

I apologize for the delay. I added the manual test case now since the first release of gnome-remote-desktop with this feature was just released.

This is a lower priority than our other desktop MIRs for Ubuntu 22.10.

description: updated
Jeremy Bícha (jbicha)
description: updated
Lukas Märdian (slyon)
Changed in fdk-aac (Ubuntu):
assignee: nobody → Lukas Märdian (slyon)
Lukas Märdian (slyon)
tags: added: fr-2597
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in fdk-aac (Ubuntu):
status: New → Confirmed
Revision history for this message
Lukas Märdian (slyon) wrote :
Download full text (6.2 KiB)

Review for Package: src:fdk-aac

[Summary]
fdk-aac is a high quality and (arguably?) open source AAC codec from Fraunhofer
IIS. The OSS license does not cover certain patented functionality. The package
is in good shape and can be used for gnome remote desktop sharing.

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: aac-enc, libfdk-aac2
Specific binary packages built, but NOT to be promoted to main: <None>

Notes:
- AA to check the license/patent situation, see https://bugs.debian.org/981285
- Parses data formats (audio) from an untrusted source, therefore I'll assign
  ~ubuntu-security for a review.

Required TODOs:
#0 Upstream does not provide a test-suite, but please add any type of automated
testing in addition to the manual test plan. At least something simple like this:
https://sources.debian.org/src/libxcb/1.15-1/debian/tests/build/?hl=2#L2 to
verify the lib is installed correctly and can be linked against.

#1 And maybe some additional testing using acc-enc to covert a simple .wav
to .acc, verifying the checksums.

Recommended TODOs:
#2 The package should get a team bug subscriber before being promoted
#3 does NOT have a non-trivial test suite that runs as autopkgtest:
=> Manual test plan provided: https://wiki.ubuntu.com/DesktopTeam/TestPlans/RemoteDesktop
#4 Some of the lintian remarks seem easy enough, we could try to help Debian with those:
I: fdk-aac source: older-debian-watch-file-standard 3 [debian/watch]
I: libfdk-aac2: symbols-file-missing-build-depends-package-field libfdk-aac.so.2 [symbols]
I: fdk-aac source: quilt-patch-missing-description [debian/patches/add_more_arch]
#5 Try to help upstream with some of the build time warnings:
warning: macro "__DATE__/__TIME__" might prevent reproducible builds [-Wdate-time]
warning: type '...' violates the C++ One Definition Rule [-Wodr]

[Duplication]
There is no other package in main providing the same functionality.
There are several AAC encoders available in Ubuntu, but non in main so far.
FDK AAC seems to be the highes quality option and therefore a good choice.

[Dependencies]
OK:
- no other Dependencies 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:
- 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), e...

Read more...

Changed in fdk-aac (Ubuntu):
assignee: Lukas Märdian (slyon) → Ubuntu Security Team (ubuntu-security)
Steve Beattie (sbeattie)
tags: added: sec-1244
Revision history for this message
Seth Arnold (seth-arnold) wrote :

Hello, this is just a note that the security team is unlikely to review this in time for 22.10. Sorry.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

I'm unassigning Security. I am going to repackage Fedora's version of fdk-aac soon so it's probably best to not put in more work here until that is done.

Changed in fdk-aac (Ubuntu):
status: Confirmed → Incomplete
assignee: Ubuntu Security Team (ubuntu-security) → nobody
assignee: nobody → Jeremy Bícha (jbicha)
Jeremy Bícha (jbicha)
affects: fdk-aac (Ubuntu) → fdk-aac-free (Ubuntu)
summary: - [MIR] fdk-aac
+ [MIR] fdk-aac-free
Jeremy Bícha (jbicha)
description: updated
Changed in fdk-aac-free (Ubuntu):
status: Incomplete → New
status: New → Confirmed
assignee: Jeremy Bícha (jbicha) → nobody
Revision history for this message
Jeremy Bícha (jbicha) wrote :

The Lintian warnings have been cleaned up. debian/upstream/metadata is pointing to the Gitlab fork which does not have bug tracking enabled.

I: fdk-aac-free source: adopted-extended-field (in section for source) XSBC-Original-Maintainer [debian/control:5]
I: aac-enc: possible-documentation-but-no-doc-base-registration
I: fdk-aac-free source: upstream-metadata-missing-bug-tracking [debian/upstream/metadata]
P: fdk-aac-free source: maintainer-manual-page [debian/aac-enc.1]

description: updated
Revision history for this message
Lukas Märdian (slyon) wrote :

This should be unblocked for security review, while jbicha will work to resolve the #0 & #1 MIR testing requirements in parallel.

Changed in fdk-aac-free (Ubuntu):
assignee: nobody → Ubuntu Security Team (ubuntu-security)
Revision history for this message
Jeremy Bícha (jbicha) wrote (last edit ):

I have added an autopkgtest for fdk-aac-free based on a new fdk-aac test that they run in their CI which tests different ways of encoding and decoding AAC files.

The autopkgtest is not using checksums because the checksums vary on every architecture and I am not certain that they would not change when ffmpeg changes.

I updated the bug description to mention that autopkgtests are provided and are passing now.

description: updated
Revision history for this message
Jorge Sancho Larraz (jslarraz) wrote :

Hi

I started to work on the security review for fdk-aac-free. I have not finish with the review yet but I wanted to point already out that there has not been any activity in [fdk-aac-stripped](https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped) for almost two years. Even this simple [merge request](https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped/-/merge_requests/2) (to document which parts have been stripped and add a sentence about the Fedora legal team review will) has been waitingfor 7 months with no response.

That makes fdk-aac-free to look basically unmaintained, raising potentially serious maintenance concerns for us.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

Jorge, thank you for your work here and comment.

The ultimate upstream source is https://github.com/mstorsjo/fdk-aac which had a release recently. I think we need to manually merge the new version if Fedora's fork is not going to be maintained.

Revision history for this message
Mark Esler (eslerm) wrote :

Could fdk-aac-free be brought up to date for review? That would resolve the maintainability story.

Revision history for this message
Jeremy Bícha (jbicha) wrote :

Mark and Jorge, I reached out to Fedora to ask them to update but I don't expect action will happen soon enough for our needs.

The Ubuntu Desktop team can likely rebase fdk-aac-free to 2.0.3 but we don't have time to do it this week.

Revision history for this message
Mark Esler (eslerm) wrote :

The upstream chain for fdk-aac-free is precarious.

The Debian package fdk-aac-free watches https://gitlab.freedesktop.org/wtaymans/fdk-aac-stripped/ This version specifically removes the HE (High Efficiency) and HEv2 profiles which have patent concerns (see README.fedora).

This version does not regularly sync from upstream: https://sourceforge.net/projects/opencore-amr/ Note that https://github.com/mstorsjo/fdk-aac is a downstream of Fraunhofer's code distributed on https://android.googlesource.com/platform/external/aac

Jorge has reported a potential vulnerability to https://github.com/mstorsjo/fdk-aac/issues/167 and to Android's VRP. Android responded saying that they require a PoC and directed Jorge to https://bughunters.google.com/learn/invalid-reports/android-platform/5148417640366080/bugs-with-negligible-security-impact#unreachable-bugs

fdk-aac-free is not being maintained by syncing with upstream which may contain security patches. Reporting issues about fdk-aac has so far been fruitless.

Security could conclude our MIR now, but I suggest that fdk-aac-free is reviewed next cycle if the owning team plans to work with fdk-aac-free. Note that Fedora is also invested in fdk-aac-free and may share concerns if made aware.

Side note: iiuc, the advantage of fdk-aac is that it works well on low resource systems, like cell phones and possibly for remote desktop. This advantage may not exist if HE profiles are stripped. If that is the case, there are aac alternatives.

Changed in fdk-aac-free (Ubuntu):
assignee: Ubuntu Security Team (ubuntu-security) → Jeremy Bícha (jbicha)
status: Confirmed → Incomplete
Revision history for this message
Seth Arnold (seth-arnold) wrote :

It's on the security team's todo list to try to bring issues discovered during the MIR to the attention of the Fraunhofer team. Hopefully they'll be more receptive than the Android team.

It sounds like there are open questions if this is actually useful for us; is the version without the efficiency codecs actually solving a problem?

Thanks

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.