JavaScript-based attack simplifies browser exploits

Researchers have found a way to easily bypass some protections in browsers

The AnC attack could spell the death of ASLR in browsers.
Credit: Ilya Pavlov/Unsplash

Researchers have devised a new attack that can bypass one of the main exploit mitigations in browsers: Address space layout randomization (ASLR). The attack takes advantage of how modern processors cache memory and, because it doesn't rely on a software bug, fixing the problem is not easy.

Researchers from the Systems and Network Security Group at Vrije Universiteit Amsterdam (VUSec) unveiled the attack, dubbed AnC, Wednesday after having coordinated its disclosure with processor, browser and OS vendors since October.

ASLR is a feature present in all major operating systems. Applications, including browsers, take advantage of it to make the exploitation of memory corruption vulnerabilities like buffer overflows more difficult.

The mitigation technique involves randomly arranging the memory address space positions used by a process so that attackers don't know where to inject malicious code so that the process executes it.

There are methods to bypass ASLR, but they often involve chaining multiple vulnerabilities together, including one that allows for memory disclosure. This new attack removes the need for such additional vulnerabilities, making the exploitation of remote code execution bugs much easier.

"This new attack is indeed very interesting if as efficient and reliable as reported," said Carsten Eiram, the chief research officer at vulnerability intelligence firm Risk Based Security, via email. "It can be chained with many code execution type vulnerabilities across different platforms and even different software that supports JavaScript, e.g. browsers. On top of that, it seems to pretty quickly allow breaking ASLR, so it is seems practical in real life and not just theoretical or academic."

What makes the attack interesting is that it does not depend on any particular software feature. It takes advantage of the way in which the memory management unit (MMU) of modern processors performs memory caching to improve performance.

It turns out that this can be used as a side channel directly from JavaScript to leak heap and code pointers that ASLR is supposed to hide.

The same researchers devised a different ASLR bypass attack last year that worked against Microsoft Edge. That attack relied on a software feature called memory deduplication that Microsoft later disabled to protect users.

That's not possible in case of AnC, because the core of the problem is at the hardware level and can't be fixed in existing CPUs. However, browser vendors can make certain tweaks that would make the implementation of the attack harder.

For example, the attack requires a precise timer in JavaScript, and browser vendors previously disabled one function that could be used for similar cache timing attacks. The VUSec researchers found two new ways to build the timers used by AnC, so browser vendors could now block these too. However, there's no guarantee that other methods won't be found in the future.

The researchers suggested several changes to CPU, OS and browser vendors that could make AnC-like attacks harder to pull off, but some of them might have performance implications that need to be further investigated. So far, the Apple Product Security Team worked with the researchers to harden WebKit against the AnC attack.

"The problem is fundamental as it is in hardware and cannot be completely eradicated with software countermeasures," said Cristiano Giuffrida, an assistant professor at VU Amsterdam and one of AnC's authors, via email. "And even hardware countermeasures are perhaps too expensive to consider to save ASLR (as hinted by some hardware vendors we talked to)."

If this is not the last nail in ASLR's coffin, it's very much the last nail in the coffin for ASLR as we know it, Giuffrida said.

AnC might have implications beyond browsers, even though browsers are the most obvious target because of the wide use of JavaScript on the web. However, any software that allows the execution of JavaScript code is potentially vulnerable, including PDF readers.

It's not clear if this attack will lead to a resurgence of browser exploits. For the past several years, the exploit kits used in large-scale, drive-by download attacks have mainly focused on targeting vulnerabilities in browser plug-ins like Flash Player, Java or Silverlight instead of flaws in the browsers themselves.

Time will tell, but bypassing ASLR is just one piece of the exploitation puzzle, Eiram said. Browsers have other security mechanisms in place, like sandboxes, that also need to be defeated to achieve arbitrary code execution, he said.

Computerworld's IT Salary Survey 2017 results
Shop Tech Products at Amazon