A new set of security vulnerabilities have put major tech giants and security researchers on the run. Just a set of software updates should be able to fix this. Isn’t it? The answer would be a yes and no. So let’s find out.
The systems using Intel processors can be exploited using a set of vulnerabilities called Microarchitectural Data Sampling (MDS). An attacker who exploits this vulnerability would be able to steal sensitive data from CPUs and cloud environments. Though the researchers reported these flaws in the hardware to Intel last year, Intel decided to hold for a year until it could come up with certain fixes for these underlying vulnerabilities.
What is MDS?
Microarchitectural Data Sampling (MDS) is a set of speculative execution side-channel vulnerabilities which leak data. Speculative execution is a technique where a system takes up a job beforehand by using methods of branch prediction and dataflow analysis. This allows a system to be ready ahead of time to provide data required for an upcoming process by saving time and also efficiently using the CPU resources. Side channel vulnerabilities refer to the leakages in the electronic circuitry such as heat and electromagnetic emissions which act as a viable source of information for attackers. With this in mind, we can conclude that Microarchitectural Data Sampling vulnerabilities are those where data from a speculative execution process in a system is harvested through the processing of various parameters (heat generated, execution time, the power consumed, etc) obtained as byproducts in the electronic circuitry.
ZombieLoad, RIDL and Fallout Attacks
Researchers point out that MDS can be used to obtain data from Store buffers, Fill buffers and Load ports. Intel published a deep analysis of the vulnerabilities. Four variants of MDS have been identified:
- CVE-2018-12126 – Microarchitectural Store Buffer Data Sampling (MSBDS): The processors write temporary store addresses and data during store operations into the store buffer. Sometimes stale data in the store buffer is forwarded to a load operation which an attacker can capture using a maliciously crafted file. Data can also be stolen from cross-threads. The Store buffer is statistically partitioned between the active threads on the same physical core. The active thread can access the data in the store buffer allocated to the other thread when it is at sleep. And, when the thread gets back to an active state, the store buffer which was used by the other active thread when this thread was asleep gets allocated to it. In such cases, the stale data from the other thread can be accessed maliciously.
- CVE-2018-12130 – Microarchitectural Fill Buffer Data Sampling (MFBDS): Fill buffers are used when an L1 data cache miss occurs. This allows the system to continue operation while the data is loaded from higher levels of cache. Sometimes a stale data in the fill buffer gets forwarded to load operations which can be captured by an attacker. Also, two threads on the same physical core share the fill buffer without any partitioning. Here, if one of the applications running on the thread is malicious, it can be used to access the data through fill buffers.
- CVE-2018-12127 – Microarchitectural Load Port Data Sampling (MLPDS): Processors use load ports for load operations between the memory or i/o system and the register. The stale data stored in the load ports is passed on to the younger dependent operations. A malicious process which is a part of one of the younger dependent operations can easily receive data from the load port. Data from cross-threads can be stolen in a similar manner as in MFBDS. The Load Ports are shared and dynamically allocated between two threads on the same physical core. This allows a malicious application running on one thread to access the data through load ports.
- CVE-2019-11091 – Microarchitectural Data Sampling Uncacheable Memory (MDSUM): Uncacheable memory is not backed by a RAM and does not write to the processor cache. But this data passes through Fill buffers, Store buffers and Load ports during memory access and this data is passed on to loading operations. Hence data in the Uncacheable Memory can also be compromised.
ZombieLoad, RIDL, and Fallout are the other names given to these security flaws.
ZombieLoad gets its name from “zombie loads” which refers to the data that cannot be accessed easily by the CPU. ZombieLoad is known to make use of MFBDS. Zombieload enables an application to gain access to sensitive data such as browser history, website content, user keys, passwords and disk encryption keys too. ZombieLoad can also be used to steal data from virtual systems and cloud environments.
Fallout is known to make use of MSBDS to steal data. Fallout is capable of bypassing the Kernel Address Space Layout Randomization (KASLR). Researchers point out that the new processors which are capable of handling the meltdown attacks are much easier to be exploited using Fallout than the previous ones.
RIDL stands for Rogue In-Flight Data Load. RIDL is also known to use MFBDS in addition to MLPDS to acquire data. Attackers can execute code using cloud resources, malicious websites or advertisements and can steal data by breaking any security barriers.
How are these new wave of attacks different from Spectre and Meltdown?
The recent ZombieLoad, RIDL, and Fallout attacks are similar to Spectre and Meltdown in the fact that they have used vulnerabilities in “speculative execution”. A major difference would be that the recent attacks do not allow an attacker to directly control the target memory address to steal data. Instead, some internal buffer operations can be analyzed using side channel attacks to get access to sensitive data.
All machines presently using Intel processors are affected. The upcoming processors would handle these vulnerabilities in the hardware itself. Reports indicate that Advanced Micro Devices (AMD) and Advanced RISC Machine (ARM) processors are not affected.
The tech giants have come up with patches working with Intel to help customers stay secure. Microsoft has issued OS-level updates to mitigate MDS vulnerabilities. Microsoft claims that steps have been taken to secure Azure’s cloud infrastructure. Apple included these patches with the latest updates for MacOS Mojave. Google’s cloud infrastructure has been secured and Chrome OS 74 has now disabled hyper-threading. Ubuntu and Red Hat have also issued updates to handle these vulnerabilities.
Please refer to this KB article.
Use SanerNow to detect and mitigate these vulnerabilities and prioritize your patching.