A new Spectre vulnerability is costly to patch but nearly impossible to exploit
TL;DR: Researchers from the University of Virginia and the University of California, San Diego discovered three Spectre vulnerabilities in AMD and Intel processors during their study of the micro-op cache. The vulnerabilities bypass existing Spectre mitigations, and the researchers predict that their proposed low-level fixes would incur an expensive performance penalty. However, they acknowledge that exploiting these might prove too difficult to justify harsh mitigations.
The three newly discovered vulnerabilities are in the design of the micro-op cache, a feature of modern CPUs present in AMD processors from 2017 onwards and Intel CPUs from 2011 onwards. The micro-op cache improves a processor’s performance by storing low-level instructions that are spawned as the processor breaks complex instructions down into computable arithmetic. It hasn’t been the subject of much investigative research, until now, because AMD and Intel document their micro-op cache designs poorly to conceal their proprietary designs.
The groundwork of the researchers’ attack is laid by two types of code structures, which they’ve called tigers and zebras. Both sit inside the micro-op cache. Tigers can evict a given code region by mimicking its structure and occupying all the same places. Zebras go unnoticed by hiding in all the unoccupied places. Together, they can assume control of a micro-op cache by exploiting its timing effects.
Like a zebra leading a hungry tiger to a tent full of people, the researchers’ malicious code leverages the structure of the micro-op cache to expose the private data that passes through it. The first vulnerability can be leveraged to leak information across domains on the same thread, the second can be used to leak information across two threads running on the same physical core, and the third enables two types of attacks that reveal information transited in mis-speculated paths.
“Due to the relatively small size of the micro-op cache, [the new] attack is significantly faster than existing Spectre variants that rely on priming and probing several cache sets to transmit secret information,” the researchers say. It’s also “considerably more stealthy, as it uses the micro-op cache as its sole disclosure primitive, introducing fewer data/instruction cache accesses, let alone misses.”
Mitigating the new vulnerabilities with any of the methods suggested by the researchers could incur a “much greater performance penalty” than current Spectre mitigation does. Their least penalizing approach is a strategy of exploitation detection, but they foresee it having a considerable error rate. Their other two strategies, partitioning and flushing, result in “heavy underutilization” of the micro-op cache and are broadly equivalent to disabling the cache outright (which in itself isn’t viable).
Fortunately, the exploitation of micro-op cache vulnerabilities is believed to require a high level of access to the target system, which standard security systems can prevent. While the researchers note that additional work is required to fully assess the risk posed by the new vulnerabilities, they don’t merit as much concern as some previous Spectre vulnerabilities. Both AMD and Intel were notified about them before their publication, and haven’t announced that they’re developing patches.
Update (5/2): The University of Virginia reached out to us to emphasize that the vulnerabilities are exploitable and should be mitigated against, even if the risk posed isn’t imminent. The researchers intend to collaborate with AMD and Intel and the wider cybersecurity community to overcome the “significant challenges” relating to the performance penalties of the mitigations.
Image credit: Niek Doup