New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 2 users
Status: Fixed
Owner:
Email to this user bounced
Closed: Jan 2015
Cc:



Sign in to add a comment
Flash corruption after corrupting pre-validated bytecode
Reported by cevans@google.com, Oct 14 2014 Back to list
There are various corruptions and unfortunate situations triggered if a Flash file edits its own SWF bytes. This is permitted via exposure of the "this.loaderInfo.bytes" ByteArray property. Unfortunately, it appears that some of the SWF content is validated for security at load time. If the SWF then edits itself at run time, the previous security validations can be bypassed.

A repro SWF is attached, along with source. It crashes due to corruption of metadata bytecode.

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.

 
TrashMetadata.as
382 bytes Download
TrashMetadata.swf
776 bytes Download
Comment 1 by cevans@google.com, Oct 15 2014
Labels: Id-3086
Comment 2 by cevans@google.com, Jan 10 2015
Labels: CVE-2015-0303
Comment 3 by cevans@google.com, Jan 14 2015
Labels: Fixed-2014-Jan-13
Status: Fixed
Fixed: http://helpx.adobe.com/security/products/flash-player/apsb15-01.html
Comment 4 by cevans@google.com, Jan 14 2015
(Note on dates: I calculated 90 days by simply adding three months which is inaccurate; this report may have actually gone over deadline. Going forward, we'll investigate a script to calculate 90 days accurately and automatically in all cases, for consistency in corner-cases.)
Comment 5 by cevans@google.com, Jan 14 2015
Labels: -Fixed-2014-Jan-13 Fixed-2015-Jan-13
Comment 6 by cevans@google.com, Jan 26 2015
Labels: -Restrict-View-Commit
Issue has now been fixed for 7+ days, so opening up for public view.

In case anyone bothers to read here: I'd like to state that I think this is a _really_ interesting bug! Being able to programatically corrupt your own bytecode via an ActionScript API is super cool, and particularly unusual in terms of trigger and level of control for a memory corruption.

If I had more time, I'd have written an exploit for this one. Unfortunately, I can't justify spending the time it would take: in Project Zero, we typically only write exploits if we think we might learn something new or gain a particular insight. I think the exploitation would be pretty run-of-the-mill in this case.

Still, this would make an interesting project for anyone learning exploitation. I'd be happy to share ideas if anyone made this their project.  Enjoy!
Sign in to add a comment