Ever since the turn of the year, when the Spectre and Meltdown flaws became publicly known, we’ve seen a steady release of security updates for x86 and ARM processors. Of the two, Spectre — which is better understood as a class of flaws related to how speculative execution is commonly implemented in modern microprocessors — has been the bigger problem, with more serious implications for long-term system security. But a new flaw, called Foreshadow, has surfaced. It’s conceptually a bit closer to Meltdown rather than Spectre, and it breaks open Intel’s Software Guard Extensions (SGX). Intel calls this bug L1TF, for L1 Terminal Fault.
Foreshadow works by attempting to read data within the enclave. This fails — the CPU prevents the activity. But because of how speculative execution works, the attempt to read the memory block does executes for a few instructions before being rolled back by the CPU to maintain its own state. This allows the attackers to infer the contents of kernel memory. The researchers also found a way to bypass the protection methods that are meant to keep SGX enclave data from being read by processes outside the enclave.
This video also explains the attack:
None of this is good, but there is some less-bad news. The researchers that discovered it have been working with Intel for months — almost, in fact, since the first Spectre and Meltdown details dropped. Microcode updates have already been distributed that allow the CPU to flush the L1 cache upon leaving an enclave. Hyper-Threading still presents a potential risk factor, but Intel is promising that its Cascade Lake CPUs, which ship later this year, will not include either L1TF or Meltdown at all.
The issue isn’t completely resolved, and you should keep an eye on vendor notices regarding software and security updates, but some of the work to mitigate the security risk has already been completed. To the best of our knowledge, this attack affects only Intel CPUs.