Apple QuickTime QTPlugin Code Execution

September 3, 2010

QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. It is available for Mac OS classic (System 7 onwards), Mac OS X and Microsoft Windows operating systems.

QuickTime provides the ability for third-party components, called QuickTime plugins. QTPlugin.ocx, a web browser plugin, is one of them, which is installed by default with Apple QuickTime. This plugin enables users to play many types of movies through a web browser. It is available for both Mac and Windows platforms. Users can configure in QuickTime what MIME types the QTPlugin should handle in a web browser. The supported MIME types include movie streaming (RTSP and SDP), AVI, FLC, QuickTime Movie, MPEG, MP3, and more.

This plugin can be instantiated as an ActiveX object either by using the ClassID or the Program ID. The QTPlugin.ocx is assigned the ClassID 02BF25D5-8C17-4B23-BC80-D3488ABDDC6B and the ProgID QuickTime.QuickTime. The object instantiation through the ClassID is done using the tag as following:

< object id="ctrl" classid="clsid:{02BF25D5-8C17-4B23-BC80-D3488ABDDC6B}" >

whereas the ProgID can be used either in JavaScript or VBScript as in the following, respectively:

var ctrl = new ActiveXObject("QuickTime.QuickTime"); Set ctrl = CreateObject("QuickTime.QuickTime")

The QTPlugin exposes various methods and parameters. One of the parameters supported by the QTPlugin control is _Marshaled_pUnk. The _Marshaled_pUnk parameter value represents a marshalled pointer value. Marshalling is a process of transforming the memory representation of data to a format that is suitable for storage or transmission.

A code execution vulnerability exists in Apple QuickTime player web browser plugin. Specifically, the vulnerability is due to a design error while parsing the value of the _Marshaled_pUnk parameter. A remote attacker can exploit this vulnerability to execute arbitrary code in the security context of the logged in user.

SonicWALL UTM team has researched this vulnerability and released IPS signatures for an attack attempts addressing this issue:

  • 5592 Apple QuickTime ActiveX _Marshaled_pUnk Attribute Setting

The vendor has released an advisory regarding this issue. The vulnerability has been assigned CVE-2010-0211 by mitre.