Retbleed can leak kernel memory from Intel CPUs at about 219 bytes per second with 98% accuracy. The exploit can extract kernel memory from AMD CPUs at a bandwidth of 3.9 kB per second. The researchers said it was able to locate and leak a Linux computer’s root password hash from physical memory in about 28 minutes when running on an Intel CPU, compared to about 6 minutes for an AMD CPU.
Retbleed works by using code that basically poisons the branch prediction unit that the CPU relies on to make guesses. Once the poisoning is complete, this BPU makes mispredictions that the attacker can control.
“We found that we could inject branch targets residing within the kernel address space, even as an unprivileged user,” the researchers wrote in a blog post. “Even if we did not have access to branch targets within the kernel address space (branching to Such a target would cause a page fault), the branch prediction unit also updates itself when it observes a branch and assumes it was executed legally, even if it was to a kernel address.”
Intel and AMD respond
Both Intel and AMD have issued announcements in response. Intel has confirmed that the vulnerability exists on Skylake-generation processors, which do not offer a protection called Enhanced Indirect Branch Restricted Speculation (eIBRS).
“Intel has worked with the Linux community and VMM vendors to provide customers with software mitigation guidance that should be available on or around today’s public disclosure date,” Intel wrote in a blog post. “Note that Windows systems are not affected as these systems use Indirect Branch Restricted Speculation (IBRS) by default, which is also a mitigation available to Linux users. Intel is not aware of this issue being exploited outside of a controlled lab environment. “
At the same time, AMD also issued guidelines. “As part of its ongoing work to identify and address new potential security vulnerabilities, AMD recommends that software vendors consider additional measures to help protect against Spectre-like attacks,” a spokesperson wrote in an email. The company also released a white paper.
Both the researcher’s research paper and blog post explain the microarchitectural conditions required to take advantage of Retbleed:
Intel. On Intel, when the return stack buffer holding the return target prediction underflows, returns start to behave like indirect jumps. This happens when executing deep in the call stack. In our evaluation, we found over a thousand such conditions that can be triggered by system calls.The indirect branch target predictor for Intel CPUs has been Previous work.
AMD. On AMD, a return will behave like an indirect branch regardless of the state of its return address stack. In fact, by poisoning the return instruction with an indirect jump, the AMD branch predictor will assume that it will encounter an indirect jump instead of a return, and therefore predict the indirect branch target. This means that any return we can get from a system call can be exploited – and there are many.
In an email, Razavi added: “Retbleed is not just a retpoline bypass for Intel, especially on AMD machines. AMD will actually be releasing a white paper on Branch Type Confusion based on Retbleed. Essentially, Retbleed Confusing return instructions and indirect branches on AMD CPUs. This makes return utilization on AMD CPUs very simple.”
The cost of these mitigations was a 12% to 28% increase in computational overhead measured by the researchers. Organizations relying on affected CPUs should carefully read publications from researchers, Intel, and AMD, and ensure that mitigation guidelines are followed.
This story originally appeared in Ars Technica.