|
|
Flash: memory corruption with mp4 file with lots of "trex" tags | |||
| Reported by cevans@google.com, Feb 4 2015 | Back to list | |||
To reproduce, host the attached SWF and other files on a web server (e.g. localhost) and load it like this: http://localhost/PlayManifest.swf?file=trex.mpd This will corrupt some pointers right away and these pointers will be free()d when the stream is torn down. We could of course do this programatically without any user interaction, but for now, just press refresh. On Chrome Windows Canary 64-bit, windbg sees the crash like this: 000007fe`e7e184d4 486378f8 movsxd rdi,dword ptr [rax-8] ds:44444444`4343433b In other words, the corrupted pointer passed to free() is attacker-controlled. It is also highly deterministic: I believe that the heap corruption involved does not cross a heap chunk boundary. To compile the .as file, I had to use special flags to flex: mxmlc -target-player 14.0 -swf-version 25 -static-link-runtime-shared-libraries ./PlayManifest.as (This also requires that you have v14.0 of playerglobals.swc installed. Any newer version should also be fine.) 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.
Comment 1
by
cevans@google.com,
Feb 5 2015
,
Mar 6 2015
,
Mar 12 2015
,
Mar 19 2015
|
||||
| ► Sign in to add a comment | ||||