SECRET OF CSS

37 hardware and firmware vulnerabilities: A guide to the threats


In January 2018, the entire computer industry was put on alert by two new processor vulnerabilities dubbed Meltdown and Spectre that defeated the fundamental OS security boundaries separating kernel and user space memory. The flaws stemmed from a performance feature of modern CPUs known as speculative execution and mitigating them required one of the biggest patch coordination efforts in history, involving CPU makers, device manufacturers and operating system vendors.

Meltdown and Spectre were certainly not the first vulnerabilities to result from a hardware design decision, but their widespread impact sparked the interest of the security research community into such flaws. Since then, many researchers, both from academia and the private sector, have been studying the low-level operation of CPUs and other hardware components and have been uncovering more and more issues.

Some hardware vulnerabilities are impossible to mitigate completely without releasing a new generation of components, while others can be fixed in firmware, the low-level programming present in hardware chips. In either case, patching is not straightforward, so such flaws can continue to impact real world devices for a very long time.

Here are some of the most significant hardware-related vulnerabilities, discovered both before and after Meltdown:

CPU side-channel attacks 

  1. Spectre variant 1 – CVE-2017-5753
  2. Spectre variant 2 – CVE-2017-5715
  3. Meltdown variant 3 – CVE-2017-5754
  4. Meltdown-GP – CVE-2018-3640
  5. Meltdown-NM – CVE-2018-3665
  6. Spectre-NG – CVE-2018-3639
  7. Spectre-PHT – CVE-2018-3693
  8. Meltdown-RW
  9. Foreshadow-OS – CVE-2018-3620
  10. Foreshadow-VMM – CVE-2018-3646
  11. Foreshadow-SGX – CVE-2018-3615
  12. Meltdown-PK and Meltdown-BND
  13. Spectre-PHT-CA-OP, Spectre-PHT-CA-IP and Spectre-PHT-SA-OP
  14. Spectre-BTB-SA-IP and Spectre-BTB-SA-OP
  15. Fallout – CVE-2018-12126
  16. RIDL – CVE-2018-12127 and CVE-2018-12130
  17. Zombieload – CVE-2019-11091
  18. Starbleed
  19. PLATYPUS
  20. SRBDS – CVE-2020-0543
  21. Spectre-BHI – CVE-2022-0001, CVE-2022-0002 and CVE-2022-23960
  22. Retbleed – CVE-2022-29901 and CVE-2022-29900
  23. Hertzbleed – CVE-2022-23823 and CVE-2022-24436

Spectre variant 1 – CVE-2017-5753

Also known as bounds check bypass, CVE-2017-5753 allows attackers to exploit the branch prediction feature of modern CPUs to extract information from the memory of other processes by using the CPU cache as a side channel. It allows one process to extract sensitive information from the memory of another process but could also bypass the user/kernel memory privilege boundary. The vulnerability affects Intel, IBM and a limited number of ARM CPUs.

Spectre variant 2 – CVE-2017-5715

Spectre variant 2 has the same impact as variant 1 but uses a different exploitation technique called branch target injection. Mitigating this variant of Spectre efficiently requires updates to the affected CPU microcode, which can be applied either through BIOS/UEFI updates or by the operating system at every reboot.

Meltdown variant 3 – CVE-2017-5754

Also known as Rogue Data Cache Load (RDCL) or variant 3 of the CPU speculative execution flaws, Meltdown is a vulnerability that leverages the out-of-order execution capabilities of modern Intel CPUs. It allows a user process to read protected kernel memory across security boundaries. The fix only requires operating system updates and involves enforcing stricter isolation of the kernel memory, which typically contains sensitive secrets, through mechanisms such as Linux’s kernel page-table isolation (KPTI).

Meltdown-GP – CVE-2018-3640

A variant of Meltdown, or variant 3a, it uses speculative reads of system registers to achieve side-channel leaks of information. Because of this, it is also know Rogue System Register Read (RSRE). Mitigation requires microcode updates.

Meltdown-NM – CVE-2018-3665

A speculative execution flaw related to Meltdown that’s also known as LazyFP and can be used to leak the state of the floating-point unit (FPU) — a specialized math coprocessor present in Intel’s modern CPUs that’s used to accelerate mathematical operations on floating point numbers. The FPU state can contain sensitive information from cryptographic operations. This vulnerability can be mitigated by enforcing “eager” instead of “lazy” FPU context switching at the operating system level.

Spectre-NG – CVE-2018-3639

Also known as Spectre variant 4, or Speculative Store Bypass (SSB), this is a Spectre variant that allows performing memory reads before prior memory write addresses are known and can be used to leak cross-process information. Mitigation requires both microcode and OS updates.

Spectre-PHT – CVE-2018-3693

Also known as Spectre 1.1, is a variant of Spectre that leverages speculative stores to create speculative buffer overflows. It allowed bypassing some of the previous software-based mitigations for Spectre and requires OS updates.

Meltdown-RW 

Also known as Spectre 1.2, is a variant that leverages speculative stores to overwrite read-only data and code pointers. This variant can be used to breach software sandboxes and is related Spectre 1.1. Mitigation required OS updates.

Foreshadow-OS – CVE-2018-3620

Also known as L1 Terminal Fault, Foreshadow is a speculative execution attack against Intel CPUs that allows extracting information from the processor’s L1 data cache. This is particularly sensitive in the context of virtual machines which split the same physical CPU into multiple virtual CPUs, because those virtual CPUs use the same L1 cache. This variant allows attackers to extract information from the OS or SMM (system management mode), an alternate mode of CPU operation that is separate from the operating system and is designed to be used by BIOS/UEFI or low-level OEM code.

Foreshadow-VMM – CVE-2018-3646

A variant of Foreshadow that affects virtual machines and allows a guest operating system running inside a VM to potentially read sensitive memory from other guest VMs or the hypervisor itself.

Foreshadow-SGX – CVE-2018-3615

A variant of Foreshadow that allows attackers to read the memory of Intel Software Guard Extensions (SGX) enclaves. SGX is a trusted execution environment provided by some Intel CPUs that allows developers to store data and execute code securely, even if the operating system itself has been compromised.

Meltdown-PK and Meltdown-BND

Meltdown-PK (Protection Key Bypass) and Meltdown-BND (Bounds Check Bypass) are two variants of Meltdown presented in November 2018 by a team of academic researchers as part of a larger evaluation of transient execution attacks. Meltdown-PK affects Intel CPUs while Meltdown-BND affects both Intel and AMD.

Spectre-PHT-CA-OP, Spectre-PHT-CA-IP and Spectre-PHT-SA-OP

These are variants of Spectre that leverage the CPU’s Pattern History Table (PHT). They were disclosed at the same time as Meltdown-PK and Meltdown-BND by the same team.

Spectre-BTB-SA-IP and Spectre-BTB-SA-OP 

These are variants of the Spectre attack that leverage the Branch Target Buffer (BTB). They were disclosed in November 2018 by the same team who found Meltdown-PK and Meltdown-BND. The team concluded at the time that “most defenses, including deployed ones, cannot fully mitigate all attack variants.”

Fallout – CVE-2018-12126

Fallout, also known as microarchitectural store buffer data sampling (MSBDS), is a vulnerability whose effects are similar to Meltdown in that it can be used to leak sensitive secrets from protected memory regions across security boundaries. It is part of a new class of side-channel attacks against CPUs that Intel calls Microarchitectural Data Sampling (MDS). The flaw affects both operating systems and hypervisors and mitigation requires CPU microcode updates.

RIDL – CVE-2018-12127 and CVE-2018-12130

Another two variants of MDS attacks known as microarchitectural load port data sampling (MLPDS) and microarchitectural fill buffer data sampling (MFBDS). Like Fallout, mitigation requires CPU microcode updates.

Zombieload – CVE-2019-11091

A fourth variant of MDS attacks known as microarchitectural data sampling uncacheable memory (MDSUM). Like Fallout and RIDL, it can be used to leak sensitive kernel or hypervisor memory.

Starbleed

Starbleed is a design flaw in the bitstream encryption process of field-programmable gate arrays (FPGAs) made by Xilinx. Unlike CPUs, which come with a predetermined set of general purpose instructions that are fit for most computing tasks, FPGAs are integrated circuits whose logic is completely programmable by the customer. They’re usually configured to perform one specific task better and more efficiently than general purpose CPUs and are widely used for mission- or safety-critical applications in sectors such as aerospace, finance and the military.

The configuration files loaded by customers onto FPGAs are called bitstreams and FPGA manufacturers like Xilinx, which controls around 50% of the FPGA market, have added encryption and bitstream validation mechanisms to allow customers to protect their intellectual property and other secrets their deployed FPGAs might contain. A team of researchers from the Horst Goertz Institute for IT Security at Ruhr University Bochum in Germany have found a design flaw in the bitstream security mechanism of Xilinx 7-Series and Virtex-6 FPGAs that can allow an attacker to decrypt bitstreams and even modify them.

“By our attack, we can circumvent the bitstream encryption and decrypt an assumedly secure bitstream on all Xilinx 7-Series devices completely and on the Virtex-6 devices partially,” the researchers wrote in their paper, which will be presented at the 29th USENIX Security Symposium. “Additionally, we are also able to manipulate the bitstream by adjusting the HMAC. Out attack setting in general is the same one as commonly encountered in mainstream practice: The adversary only needs access to the configuration interface of a fielded FPGA. In this setting, the secret decryption key has already been loaded into the FPGA — e.g., after device manufacturing, the key is stored in internal battery-backed RAM (BBRAM) or eFUSEs. As will be shown later, the adversary uses the FPGA with the stored key as an oracle to decrypt the bitstream.”

To pull off the Starbleed attack, hackers need access to a hardware configuration interface on the FPGA which normally means they would need physical access to the device. However, some FPGAs are programmed and reprogrammed through separate microcontrollers, which can be connected to a network, in which case such an attack could be executed remotely.

The design flaw cannot be patched because it exists in the silicon, so it will be corrected in future generations of Xilinx FPGAs. The company has been notified of the vulnerability before the paper was published and has sent an advisory to customers.

PLATYPUS

PLATYPUS is a side-channel attack that abuses the running average power limit (RAPL) interface that’s used to measure power consumption in CPU cores and is present in all Intel CPUs developed since 2011 (Sandy Bridge). It is the first differential power analysis attack that can be executed remotely and used to leak secrets such as encryption keys from the Linux kernel memory and Intel SGX secure enclaves.

The attack was announced in November 2020 and was devised by a team of researchers from the Graz University of Technology, the University of Birmingham in UK and CISPA Helmholtz Center for Information Security. The Linux kernel developers patched the vulnerabilities, which are tracked as CVE-2020-8694 and CVE-2020-8695, by preventing unprivileged applications from accessing the RAPL energy consumption data.

However, this does not address the privileged attack vector against Intel SGX, a trusted execution environment (TEE) built into the CPU that’s supposed to keep sensitive cryptographic data secure even in the case of a complete OS compromise. To address this, users have to deploy CPU microcode updates released by Intel.

While the researchers tested and confirmed their attack on Intel CPUs, they warned that CPUs from other chip makers including AMD, Nvidia and ARM also have on-board energy meters that are accessible and could be vulnerable to a variation of this attack.

SRBDS – CVE-2020-0543

SRBDS (Special Register Buffer Data Sampling) is an attack technique developed by researchers at VU Amsterdam in 2020 that demonstrates that speculative execution attacks that leak data through side-channels are possible across different CPU cores. Previously, such attacks and the mitigations developed for them assumed that the the attacker and victim share the same CPU core because the internal CPU buffers used to leak data from are shared by the hyperthreads running on the same CPU core.

However, the researchers found that some instructions can read data from a staging buffer that is shared between all CPU cores and this expanded the attack surface of known and previously mitigated speculative execution attacks like RIDL (CVE-2018-12127 and CVE-2018-12130). The team developed a tool called CrossTalk to examine the behavior of all x86 instructions in different contexts to determine when they make offcore memory requests and then used the new attack technique to leak the random number generator output used by Intel SGX secure enclaves from the staging buffer. With this RNG output they were able to leak the ECDSA private key of an Intel SGX enclave running on a separate CPU core after the key was used to perform a single digital signature operation.



News Credit

%d bloggers like this: