[MIR] webrtc-audio-processing
| Affects | Status | Importance | Assigned to | Milestone | |
|---|---|---|---|---|---|
| | webrtc-audio-processing (Ubuntu) |
Undecided
|
Unassigned | ||
Bug Description
Rationale:
This package contains an echo canceller which has a higher quality than the speex echo canceller. If this package was in main, we could build PulseAudio with webrtc echo canceller support. People in bug 1261666 are requesting this.
Also, Debian already does this.
Security:
There are some hits for "webrtc" here: http://
QA:
No open bugs in the Ubuntu bug tracker.
One bug in the Debian bug tracker, which has been left unattended for some months.
There is no debian/watch file.
Dependencies:
It has almost no dependencies. Binary packages depend only on libc6/libgcc1/
Maintenance:
Should normally be in sync with Debian (is currently not, due to the bug mentioned above). Suggest ubuntu-audio team to get bug reports once this gets into main.
| Puyol (paul9510) wrote : | #1 |
| David Henningsson (diwic) wrote : | #2 |
> Hello I installed this package already "web-audio-
> aec_method=webrtc it return : Failure: Module initalization failed!!
Yes, this is because pulseaudio builds without webrtc support by default. Just installing the package is not enough. You will need to rebuild pulseaudio with libwebrtc-
| Puyol (paul9510) wrote : | #3 |
sorry for the inconvenience, so i have to modify the source code or what, how to rebuild pulseaudio with libwebrtc-
| David Henningsson (diwic) wrote : | #4 |
> sorry for the inconvenience, so i have to modify the source code or what,
> how to rebuild pulseaudio with libwebrtc-
Here's one of all links that explains how to rebuild a package:
http://
Also, before running dpkg-buildpackage, you will also need to modify debian/
usr/lib/
After installing the resulting .debs (only those corresponding to a package you already have installed, though), and rebooting your system, you should be able to try the webrtc echo canceller.
| Michael Terry (mterry) wrote : | #5 |
* Needs a team bug subscriber, for whomever will look after this in Ubuntu
* I'm seeing the following compile warning which seems troubling. Any comment on that?
CC libagc_
analog_agc.c: In function 'WebRtcAgc_Init':
analog_
analog_
for (i = 0; i < 20; i++)
^
* I will assign to security team for a quick "those other CVEs don't bother us" check
| Changed in webrtc-audio-processing (Ubuntu): | |
| status: | New → Incomplete |
| assignee: | nobody → Ubuntu Security Team (ubuntu-security) |
| Changed in webrtc-audio-processing (Ubuntu): | |
| assignee: | Ubuntu Security Team (ubuntu-security) → Seth Arnold (seth-arnold) |
| David Henningsson (diwic) wrote : | #6 |
> * Needs a team bug subscriber, for whomever will look after this in Ubuntu
I suggest ubuntu-audio team.
> * I'm seeing the following compile warning which seems troubling. Any comment on that?
Looking at the actual code, it makes sense to rewrite as
for (j = 0; j < 2; j++)
for (i = 0; i < 10; i++)
...or just a memset. I e, it wasn't as scary as it first looked.
| Michael Terry (mterry) wrote : | #7 |
Yar, it's probably an easy fix. But the warning implies that optimization will make the current code result in undefined behavior? Is there an actual problem with the current code or is it an ignorable warning?
| David Henningsson (diwic) wrote : | #8 |
> Is there an actual problem with the current code or is it an ignorable warning?
My gut says it's an ignorable warning, but I wouldn't bet on it - I'd prefer to fix it using the code above. Want me to make a debdiff you can sponsor?
| David Henningsson (diwic) wrote : | #9 |
| David Henningsson (diwic) wrote : | #10 |
Here's a debdiff for the compiler warning.
| Seth Arnold (seth-arnold) wrote : | #11 |
I reviewed webrtc-
utopic. This review should not be considered a full security audit but
rather a quick gauge of maintainability.
- This packages WebRTC code, a collection of codec/protocols used for
realtime communication.
- Build-depends debhelper, dh-autoreconf
- Depends on nothing
- No cryptopgrahy
- Does not itself do networking
- No daemons
- No pre/post inst/rm scripts
- No init scripts
- No dbus services
- No setuid
- No binaries
- No sudo fragments
- No udev rules
- No tests are run at build time
- No cron jobs
- Build logs mostly clean, unlikely to be security-relevant
- No subprocesses are spawned
- Extensive manual memory management; many functions assumed preconditions
are met, but mostly looked safe
- Most file operations are in debugging ifdefs
- Logging looked safe
- No environment variables used
- No privileged portions of code
- No cryptography
- Does not itself do networking
- No temporary files
- No webkit
- No policykit
- Clean cppcheck, only one message, probably false positive
This code is highly technical signal processing code; it's quite possible
that codec-level flaws could have unintended consequences and we could
not possibly repair the protocol without expert assistance. On the other
hand, it looks above-average for signal processing and cleanly separates
the signal processing from other portions of code.
Here are some notes I collected while reviewing; I hope these help
someone:
WebRtcAecm_
AecmCore_t structure appears to only allocate 8 or 16 bytes extra for the
buffers; if gcc is already aligning these elements on 8 byte boundaries
wouldn't that be providing 16 (sufficient) or 24 (insufficient) alignment
options? I think the neon 32-byte alignments might not be properly met.
VerifyAndAlloca
memory allocations and array subscripting (in other methods), no callers
in-tree for this method? Probably needs input validation of some sort.
Why does EchoControlMobi
parameter?
Consider calloc() instead of malloc(sizeof (t) * N) to avoid integer
overflow errors. (I didn't follow all the parameters far enough to
determine if there are any exploitable conditions among these instances,
it seemed unlikely.)
Security team ACK for promoting webrtc-
Thanks
| Changed in webrtc-audio-processing (Ubuntu): | |
| assignee: | Seth Arnold (seth-arnold) → nobody |
| Michael Terry (mterry) wrote : | #12 |
Thanks, Seth! So the compiler warning fix is already in our packaging. And we're back in sync now too! But this still needs a team bug subscriber...
| David Henningsson (diwic) wrote : | #13 |
@mterry, I just added the ubuntu-audio team as bug subscriber, just as we have for alsa-driver, pulseaudio, etc. Is this what you're looking for, or is it something else?
| Michael Terry (mterry) wrote : | #14 |
Yup, perfect!
| Changed in webrtc-audio-processing (Ubuntu): | |
| status: | Incomplete → Fix Committed |
| Matthias Klose (doko) wrote : | #15 |
Override component to main
webrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
libwebrtc-
13 publications overridden.
| Changed in webrtc-audio-processing (Ubuntu): | |
| status: | Fix Committed → Fix Released |


Hello processing" but when i use : pactl load-module module-echo-cancel aec_method=webrtc it return : Failure: Module initalization failed!!
I installed this package already "web-audio-