A limitation built recently into Google Chrome to detect and block Flash Player exploits ended up breaking certain Flash-based applications and games for some users.
Suspecting that someone would try to hack Chrome via a Flash exploit at this year’s Pwn2Own contest, the browser’s developers decided to restrict the maximum allowed size of Flash JIT (just-in-time) pages to a value that such exploits would likely exceed.
The restriction was written in such a way that when the new limit would be reached the browser would throw an “access violation” exception that referenced memory address “0xABAD1DEA,” a hexadecimal value spelling out “a bad idea.”
According to Chrome’s development tracker, the limit was introduced on February 23 and was first tested out in the browser’s Canary (nightly build) version. The limit was later tweaked because of a considerable number of crash reports and landed in Chrome stable version 17.0.963.66 on March 6.
Some of the Pwn2Own contestants did stumble over the Flash JIT page restriction. Nicolas Joly, a member of the VUPEN Security team, which eventually won the hacking contest, said on Twitter that he encountered 0xABAD1DEA exceptions during his tests.
Google Chrome security engineer Justin Schuh revealed that he was the one who put it there in order to detect Flash exploits. “0xABAD1DEA was a breadcrumb I added that’s unique to Flash,” he said on Twitter.
Schuh later clarified that it wasn’t just a trap, but also a mitigation, although he admitted that it was a weak one. The VUPEN Team eventually managed to work their way around the restriction and hacked Chrome during the contest.
However, Google’s half-mitigation, half-trap code caused more problems than it solved, because it ended up interfering with the normal operation of some legitimate Flash-based applications and games, like Sims Social, Audiotool and Paychex Online.
According to reports on the Google Chrome support forum, users started experiencing Flash Player crashes referencing 0xABAD1DEA after they upgraded to Chrome version 17.0.963.66.
Changes aimed at addressing the problem were made in Chrome version 17.0.963.79, which was released on Saturday, a Google employee said in response to the reports. However, some users still experienced 0xABAD1DEA-related crashes after upgrading to it.