Vulnerability in Intel Atom processors leading to information leakage from registers

Intel has disclosed a microarchitectural vulnerability (CVE-2023-28746) in Intel Atom processors (E-core) that allows data used by a process previously running on the same CPU core to be determined. The vulnerability, codenamed RFDS (Register File Data Sampling), is caused by the ability to determine residual information from processor register files (RF, Register File), which are used to jointly store the contents of registers in all tasks on the same CPU core.

The problem was identified by Intel engineers during an internal audit. Detailed information about the method of exploiting the vulnerability is not disclosed. It is argued that the attacker cannot purposefully control the selection of processes for data extraction, i.e. the deposition of information available for retrieval is random. However, monitoring residual information may leak sensitive data from other user processes, the system kernel, virtual machines, SGX enclaves, and SMM mode handlers.

Leaks affect vector registers that are actively used in encryption, memory copy functions, and string processing, for example, in the memcpy, strcmp, and strlen functions. Leakage is also possible through registers for storing floating point numbers and integers, but they are updated during task execution much more often than vector registers, so leakage through them is less likely. Residual data does not directly remain in registers, but can be extracted from register files using side-channel attack techniques such as mining data in the CPU cache.

The vulnerability only affects Atom processors based on the Alder Lake, Raptor Lake, Tremont, Goldmont and Gracemont microarchitectures. Since vulnerable processors do not support HyperThreading mode, the leak is possible only within one thread of execution by the current CPU core. Changes to address the vulnerability are included in microcode update microcode-20240312-staging. Methods of protection against the vulnerability are identical to those already used to block previously identified attacks of the MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling), TAA (Transactional Asynchronous Abort), DRPW (Device Register Partial Write) and SBDS (Shared) attacks. Buffers Data Sampling).

To block leaks in the kernel and hypervisors, in addition to updating the microcode, it is necessary to use software protection methods based on using the VERW instruction to clear the contents of microarchitectural buffers when returning from the kernel to user space or when transferring control to the guest system. The specified protection has already been added to the Xen hypervisor and the Linux kernel. To enable protection in the Linux kernel, you can use the β€œreg_file_data_sampling=on” flag when loading the kernel, and information about exposure to vulnerabilities and the presence of microcode necessary for protection can be assessed in the file β€œ/sys/devices/system/cpu/vulnerabilities/reg_file_data_sampling”.

Source: opennet.ru

Add a comment