Flaw in Intel CPUs could help attackers defeat ASLR exploit defense

The branch target buffer mechanism in Intel Haswell CPUs can be used to leak ASLR memory addresses

The branch target buffer in CPUs can bypass ASLR.
Intel Free Press (Creative Commons BY or BY-SA)

A feature in Intel's Haswell CPUs can be abused to reliably defeat an anti-exploitation technology that exists in all major operating systems, researchers have found.

The technique, developed by three researchers from State University of New York at Binghamton and the University of California in Riverside, can be used to bypass address space layout randomization (ASLR) and was presented this week at the 49th annual IEEE/ACM International Symposium on Microarchitecture in Taipei.

ASLR is a security mechanism used by operating systems to randomize the memory addresses used by key areas of processes, so that attackers don't know where to inject their exploit shellcode.

ASLR is used to prevent memory corruption bugs, such as stack and heap overflows, from arbitrary code execution as opposed to crashes. Once such a vulnerability is exploited, the malicious code needs to be injected at a position in memory where the target process or the OS kernel itself will execute as part of normal operation.

In their paper, the three researchers show that the branch target buffer (BTB), a caching mechanism used by the CPU's branch target predictor, can be leveraged to leak ASLR addresses by triggering BTB collisions between different user processes or processes and the kernel. The branch prediction mechanism is used in modern CPUs to optimize performance.

"The BTB stores target addresses of recently executed branch instructions, so that those addresses can be obtained directly from a BTB lookup to fetch instructions starting at the target in the next cycle," the researchers explain in their paper. "Since the BTB is shared by several applications executing on the same core, information leakage from one application to another through the BTB side-channel is possible."

The researchers demonstrated their BTB-based ASLR bypass on a computer equipped with an Intel Haswell microarchitecture CPU and running a recent Linux kernel (version 4.5). Their attack can reliably recover kernel ASLR using BTB collisions in around 60 milliseconds.

The research paper proposes both software and hardware-based mitigations that could prevent BTB-based side-channel attacks in the future or harden current ASLR implementations.

Attackers currently have other methods of bypassing ASLR, but they typically require finding additional memory leak vulnerabilities and chaining those together with the original memory corruption flaw. Due to software security improvements in recent years, most remote code execution attacks today require the use of chained exploits.

Intel didn't immediately respond to a request for comments.

New! Download the State of Cybercrime 2017 report