New issue
Advanced search Search tips
Starred by 1 user
Status: Fixed
Owner:
Closed: Dec 2015
Cc:



Sign in to add a comment
Adobe Flash: Type Confusion in Serialization with ObjectEncoder.dynamicPropertyWriter
Project Member Reported by natashenka@google.com, Sep 23 2015 Back to list
There is a type confusion issue during serialization if ObjectEncoder.dynamicPropertyWriter is overridden with a value that is not a function.

In the following ActionScript:

		flash.net.ObjectEncoding.dynamicPropertyWriter = new subdpw();
		var b = new ByteArray();
		var a = {};
		a.test = 1;
		b.writeObject(a);

The object 'a' with a dynamic property 'test' is serialized using a custom dynamicPropertyWriter of class subpwd. However this class overrides writeDynamicProperties with a property that is not a function leading to type confusion (note that this is not possible in the compiler, the bytecode needs to be modified manually).

To reproduce the issue, load objectencoding.swf. PoC code is also attached. To use this code, compile the swf, and decompress it (for example, using flasm -x), and then search for the string "triteDocumentProperties" in the SWF and change it to "writeDocumentProperties".


This bug is subject to a 90 day disclosure deadline. If 90 days elapse
without a broadly available patch, then the bug report will automatically
become visible to the public.
 
dpw.as
346 bytes Download
subdpw.as
168 bytes Download
objectencoding.swf
2.6 KB Download
objectencoding.as
363 bytes Download
Project Member Comment 1 by natashenka@google.com, Sep 24 2015
Labels: Label-4131
This is  PSIRT-4131
Project Member Comment 2 by scvitti@google.com, Sep 24 2015
Labels: -Reported-2015-Sept-23 Reported-2015-Sep-23
Project Member Comment 3 by natashenka@google.com, Oct 15 2015
Labels: CVE-2015-7648
Project Member Comment 4 by natashenka@google.com, Dec 10 2015
Labels: -Restrict-View-Commit
Status: Fixed
Sign in to add a comment