Opus: User-assisted execution of arbitrary code — GLSA 201702-21

A vulnerability in Opus could cause memory corruption.

Affected packages

media-libs/opus on all architectures
Affected versions < 1.1.3-r1
Unaffected versions >= 1.1.3-r1

Background

Opus is a totally open, royalty-free, highly versatile audio codec.

Description

A large NLSF values could cause the stabilization code in silk/NLSF_stabilize.c to wrap-around and have the last value in NLSF_Q15[] to be negative, close to -32768.

Under normal circumstances, the code will simply read from the wrong table resulting in an unstable LPC filter. The filter would then go through the LPC stabilization code at the end of silk_NLSF2A().

Ultimately, the output audio would be garbage, but no worse than with any other harmless bad packet.

Please see the referenced upstream patch and Debian bug report below for a detailed analysis.

However, the original report was about a successful exploitation of Android’s Mediaserver in conjunction with this vulnerability.

Impact

A remote attacker could entice a user to open a specially crafted media stream, possibly resulting in execution of arbitrary code with the privileges of the process, or a Denial of Service condition.

Workaround

There is no known workaround at this time.

Resolution

All Opus users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=media-libs/opus-1.1.3-r1"
 

References

Release date
February 20, 2017

Latest revision
February 20, 2017: 1

Severity
normal

Exploitable
remote

Bugzilla entries