While CVE-2012-4969 isn't new, we are still curious about the various ways this vulnerability can be exploited. Today we've stumbled upon a new instance of it. Let's have a look.
That's a rather simple version of the first half of the attack, so let's have a look at the second.
This part of the exploitation attempt seems to be obfuscated, but wait, see that part that tries to see whether the "session Storage" object/variable exists? That's an interesting and novel way to make 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 of simply breaking the de-obfuscation process, the code makes it impossible for the older browsers to continue with the process as the "un escape" function is overridden while it is later necessary for heap-spraying. We believe that the reason this is done is to try and overcome some JavaScript dynamic analysis engines such as Wepawet and js-unpack which usually emulates other or older browsers.
After the de-obfuscation completes, the already known exploit for CVE-2012-4969 is revealed.
Wondering around on the malware server, we found it has an admin panel:
The statistics section of the panel shows every browser along with the plugins, which browsed to that malicious server. While the statistics section doesn't contain fancy results yet, we believe that this 0.1version could evolve to something more mature and that the entire thing would become a full blown exploit kit.
Since the malware is hosted on a breached recording company server, we've notified them about it and expect it to be fixed soon.
Thanks to my colleague, Arseny Levin, for his assistance in the research and analysis.