This article is more than 1 year old
RIP Hyper-Threading? ChromeOS axes key Intel CPU feature over data-leak flaws – Microsoft, Apple suggest snub
Plug pulled on SMT tech as software makers put security ahead of performance
Analysis In conjunction with Intel's coordinated disclosure today about a family of security vulnerabilities discovered in millions of its processors, Google has turned off Hyper-Threading in Chrome OS to fully protect its users.
Meanwhile, Apple, Microsoft, IBM's Red Hat, QubesOS, and Xen advised customers that they may wish to take similar steps.
The family of flaws are dubbed microarchitecture data sampling (MDS), and Chipzilla's official advisory is here, along with the necessary microcode updates to mitigate the data-leaking vulnerabilities and list of affected products. Installing these fixes and disabling Intel's Hyper-Threading feature is a sure fire way to kill off the bugs, though there may be a performance hit as a result.
Hyper-Threading is Intel's implementation of simultaneous multithreading (SMT), a technique for splitting a single physical processor core into two virtual cores known as hardware threads. It's supposed to improve performance by allowing two software threads to run simultaneously through each physical core, sharing available resources on the silicon as needed. This means one physical core can juggle two threads, either in the same application or two separate applications, at the same time, improving throughput. Some workloads benefit from this, some are hindered or see no gain. You mileage may vary.
However, one thing it does bring into the mix is the risk that side-channel surveillance techniques, such as MDS, may be able to break hardware thread isolation, and access sensitive data it shouldn't be able to see. In other words, one thread can snoop on the memory accesses of another thread sharing the same physical CPU core, and lift passwords, keys, and other secrets, potentially.
Really, today's chip flaw disclosures cover a group of design blunders: ZombieLoad (CVE-2018-12130) can be exploited by malware or rogue users on a vulnerable system to potentially steal browser histories, website content, user keys, passwords, and system-level secrets, such as disk encryption keys from other parts of memory. We're told it can work across CPU protection rings and process boundaries, and against cloud and on-premises virtual machines and trusted execution environments. Proof-of-concept exploit code is available to try it out for yourself.
There's also RIDL and Fallout (CVE-2018-12126, CVE-2018-12127, CVE-2019-11091) that can be exploited to steal confidential info from memory.
Mitigating these security oversights in Intel's chips will require microcode updates to be installed, and operating system and hypervisor patches to utilize them, so check your OS vendor, and system manufacturer if needed, for new software and install it as soon as you're able. These fixes may introduce a performance hit depending on what kind of programs you're running.
You can opt to turn off Hyper-Threading to fully neutralize the threat, though you may want to weigh up if it's worth the performance cost by testing your applications with the feature on and off.
Google said it is disabling Hyper-Threading by default in Chrome OS 74, citing security concerns, and noting that Chrome OS 75 will have additional mitigations.
"The decision to disable or enable Hyper-Threading is a security versus performance tradeoff," said the web giant's people in a vulnerability notice. "With Hyper-Threading disabled, Intel CPUs may experience reduced performance, which varies depending on the workload. But, with Hyper-Threading enabled, users could execute code, such as by visiting a website or running an Android app, that exploits MDS to read sensitive memory contents."
Google has further details on how it's handling the bugs, from its client applications to cloud services, right here.
The OpenBSD community, for one, came to that conclusion last year when it disabled Hyber-Threading in OpenBSD 6.4. In response to past Intel processor vulnerabilities (TLBleed and L1TF) that showed Hyper-Threading to be a risk, OpenBSD leader Theo de Raadt observed that Hyper-Threading is fundamentally broken because shares resources between two CPU instances without assuring secure isolation.
"DISABLE HYPERTHREADING ON ALL YOUR INTEL MACHINES IN THE BIOS," he said in a mailing list post at the time.
"Full mitigation requires using the Terminal app to enable an additional CPU instruction and disable hyper-threading processing technology," Apple warned in its advisory. "This capability is available for macOS Mojave, High Sierra, and Sierra in the latest security updates and may reduce performance by up to 40 per cent, with the most impact on intensive computing tasks that are highly multithreaded."
Unfortunately for Apple customers with older Macs, Intel has not made microcode fixes available for Mac models from 2010 or earlier.
Microsoft in its MDS threat guidance does not take a firm stand but notes, "To be fully protected, customers may also need to disable Hyper-Threading." The Windows giant has released operating system updates to mitigate Intel's design flaw in conjunction with necessary microcode updates – see the aforementioned link.
Red Hat includes a link to disabling Hyper-Threading in its advisory without making a recommendation one way or another. Its Hyper-Threading (SMT) security page notes, "Various microprocessor flaws have been discovered recently. Certain issues require SMT be disabled in order to more fully mitigate the issue."
The enterprise Linux slinger has more technical notes here and here on the cause and effects – or you can check out the vid below. Other Linux distros should be rolling out their fixes, too. Here's the state of play with Ubuntu and Debian, for instance.
Google Cloud only recommends disabling Hyper-Threading for Compute Engine users "if you are using Container Optimized OS (COS) as your Guest OS and you are running untrusted, multi-tenant workloads in your virtual machine." It makes a similar recommendation for those running untrusted code on multi-tenant services within Kubernetes Engine.
Xen, which makes a hypervisor used by AWS (advisory) and other cloud providers others, has issued an advisory that details the risks of Hyper-Threading while refusing to disable the technology by default because doing so would be too disruptive. Mitigations and fixes are available from the aforementioned link.
"Leakage of data from Xen or other guests can only prevented entirely by disabling hyper-threading (if available and active in the BIOS), and by applying the patches to Xen," its advisory stated.
Qubes, which relies on Xen for virtualization, says much the same.
Intel is fine with its technology, and leaves the decision to disable Hyper-Threading to its industry partners.
"Intel is not recommending disabling HT," a company spokesperson told The Register in an email.
"It’s important to understand that disabling SMT/HT does not alone provide protection against MDS, and doing so may impact workload performance or resource utilization that can vary depending on the workload.
"After systems are updated, there are some cases where additional considerations may apply. Our software partners will provide guidance that can help customers make the right decisions for their systems and the workloads critical to their needs." ®