AMD CPU users are now grappling with an additional vulnerability that has the potential to leak sensitive data from compromised machines in a manner reminiscent of Zenbleed. This newfound security flaw, dubbed "Inception," opens the door to the theft of confidential information from vulnerable systems during their active operations.
Assigned the identifier CVE-2023-20569, the term "Inception" draws inspiration from the film by Christopher Nolan, which delves into the manipulation of dreams to realize desired outcomes in reality. This security concern was brought to light by researchers from ETH Zurich, who disclosed their findings during the current week.
Much like its forerunners, Inception capitalizes on the speculative execution approach, allowing malicious software or a rogue user with unauthorized access to exploit the system's vulnerabilities and illicitly access passwords, confidential files, and other restricted data.
The Inception vulnerability is a culmination of an already-identified security loophole and an innovative transient execution attack, referred to as "training in transient execution" (TTE) by the research team. This technique permits unauthorized data extraction from an operating system's kernel, facilitating a data leakage rate of 39 bytes per second on compromised hardware.
Tragically, the impact of this vulnerability is far-reaching, affecting a wide array of systems. Virtually all AMD CPU models produced since 2017, including the latest Zen 4 Epyc and Ryzen processors, fall within its scope. Consequently, a substantial portion of users remain vulnerable to potential security breaches.
Despite the extensive potential fallout, AMD is attempting to downplay the risk while concurrently introducing microcode updates for newer Zen chips to mitigate the threat. In a public disclosure, the company conveyed its belief that this vulnerability is primarily exploitable in local contexts, such as through downloaded malware, and has classified Inception as a "medium" severity issue.
Intel processors have been found not to be susceptible to Inception. However, this does not imply they are immune to all security concerns, as Intel is currently grappling with its own separate side-channel attack revealed this week, labeled "Downfall."
Mechanics Behind Inception
Inception's successful exploitation revolves around the concept that modern CPUs need to optimize performance, often at the cost of strict adherence to instruction sequences. Instead of executing instructions linearly, CPU cores predict the instructions required and execute them out of order if possible—a technique known as speculative execution. If the prediction is incorrect, the core discards the erroneous computations. This allows the core to continue functioning without waiting for earlier operations to conclude. This speculative execution process leads to the opening of a transient window.
While this process typically yields substantial performance benefits and is continually refined by CPU designers, it has also proven susceptible to misuse, as demonstrated by past side-channel attacks like Meltdown and Spectre. Inception introduces a fresh variation on this attack vector, involving two phases.
The first phase leverages a previously uncovered vulnerability named Phantom execution (CVE-2022-23825) to provoke a misprediction, leading the core to incorrectly guess the execution path. This, in turn, creates an on-demand transient execution window.
The second phase involves a TTE attack, where new mispredictions are injected into the transient window. These mispredictions generate additional transient windows, resulting in an overflow within the return stack buffer with a target controlled by the attacker.
"The result of this insight is Inception, an attack that leaks arbitrary data from an unprivileged process on all AMD Zen CPUs," the researchers detailed.
Demonstrating this attack, the Swiss team showcased the extraction of the root account hash from /etc/shadow on a Zen 4-based Ryzen 7700X CPU, equipped with all Spectre mitigations, through a published video accompanying the disclosure.
Risk Mitigation Strategies
According to the university's researchers, comprehensive mitigation necessitates a full flushing of the branch predictor state when transitioning between untrusted contexts. In practice, the situation is somewhat intricate, as evidenced by the Linux kernel patch addressing Inception:
Install a microcode update from AMD, packaged as a BIOS update, focusing on safeguarding user processes from one another and virtual machines from their counterparts on the same host. While Zen 3 and 4 CPU cores require this update, Zen 1 and 2 do not, according to AMD.
Opt for the microcode update and activate a "safe RET" feature in the kernel that provides the aforementioned protection and extends it to shielding the kernel from user processes and hosts from guest virtual machines. This configuration is the default.
Alternatively, opt for IBPB-level protections, including a version for cloud providers that secures hosts from guest environments.
The Linux kernel patch emphasizes, "The mitigation works by ensuring all RET instructions speculate to a controlled location, similar to how speculation is controlled in the retpoline sequence."
For Zen 3 and 4 CPUs—encompassing Epyc 3 and 4 and Ryzen 5000 and 7000 processors—a microcode update is necessary due to the apparent absence of the required hardware support for flushing the complete branch predictor state. AMD has already initiated the distribution of these microcode fixes to system manufacturers for subsequent customer distribution, aiming to address the vulnerability. However, system administrators may face downtime to apply the microcode BIOS update.
The researchers caution that implementing these mitigations could lead to significant performance impact, contingent on the scenario. The actual impact may hinge on the specific workload and whether the mitigation measures are justifiable, considering the user base and their respective tasks.
In a response to The Register, AMD acknowledged that "any performance impact will vary depending on workload and system configuration, but AMD expects performance impacts from the microcode patch or BIOS update to be minimal. For Linux performance... we're still assessing that mitigation."
In summary, our recommendation is to acquire the microcode upgrade if deemed necessary, install a patched Linux kernel, and observe its performance. For those not using Linux, it's advised to communicate with your operating system provider or check for available updates.