While CVE-2012-4969 isn't new, we are still curious aboutthe various ways this vulnerability can be exploited. Today we've stumbled upona new instance of it. Let's have a look.
That's a rather simple version of the first half of theattack, so let's have a look at the second.
This part of the exploitation attempt seems to beobfuscated, but wait, see that part that tries to see whether the"sessionStorage" object/variable exists? That's an interesting and novel way tomake sure the browser version is IE 8 or above (or other modern browsers),since this is a HTML 5 feature not found in previous versions. Also, instead ofsimply breaking the de-obfuscation process, the code makes it impossible forthe older browsers to continue with the process as the "unescape" function isoverridden while it is later necessary for heap-spraying. We believe that thereason this is done is to try and overcome some JavaScript dynamic analysisengines such as Wepawet and js-unpack which usually emulates other or olderbrowsers.After the de-obfuscation completes, the already knownexploit for CVE-2012-4969 is revealed.
Wondering around on the malware server, we found it has anadmin panel:
The statistics section of the panel shows every browseralong with the plugins, which browsed to that malicious server. While thestatistics section doesn't contain fancy results yet, we believe that this 0.1version could evolve to something more mature and that the entire thing wouldbecome a full blown exploit kit.
Since the malware is hosted on a breached recording companyserver, we've notified them about it and expect it to be fixed soon.
Thanks to my colleague, Arseny Levin, for his assistance inthe research and analysis.