A group of researchers from the Vrije Universiteit Amsterdam has identified several new Spectre-v2 vulnerabilities, released under the codename Training Solo, which allow bypassing memory isolation mechanisms. In the context of virtualization systems, these vulnerabilities enable the determination of the host environment's memory contents from guest systems, and in server contexts, they allow revealing the kernel memory contents while executing exploits in user space. Examples of exploits for carrying out such attacks have been published on GitHub. The presented exploits can extract arbitrary data from kernel memory at a rate of 17 KB/sec, and from hypervisor memory at 8.5 KB/sec.
In Spectre-v2 attacks, data leakage is organized by manipulating values in the Branch Target Buffer or the Branch History Buffer, which are used for predicting the next branching operation. Through manipulations of the history buffer, conditions for incorrect branch predictions during speculative instruction execution are created. The attacker's goal is to ensure that the address for the branch is taken from the desired memory area during speculative operation execution. After executing the speculative branch, the processor cache retains the read address from memory (this address appears as data needed by the attacker from memory). One method for extracting information from the cache involves determining cache contents based on analyzing the change in access time to cached and non-cached data.
The Training Solo attack methods aim to bypass execution region isolation mechanisms, such as IBPB, eIBRS, and BHI_NO, used to block Spectre-v2 attacks. For instance, the IBPB (Indirect Branch Prediction Barriers) instruction ensures the resetting of the prediction block state with each context switch — when control is transferred between user space and the kernel or between a guest system and the host environment. Resetting the state blocks the possibility of using custom code to influence the behavior of the indirect branch prediction block.
The difference in Training Solo methods is that they propose not running attacker-controlled code to influence the prediction block but rather using code already present in the privileged execution area (the kernel or hypervisor), from which the attacker achieves leaks. Otherwise, the methods resemble classical Spectre-v2 attacks. Additionally, researchers identified two hardware issues (CVE-2024-28956 and CVE-2025-24495) that allow complete bypassing of execution area isolation and facilitate leaks from processes of other users, other guest systems, or the host environment.

Three types of Training Solo attacks are proposed:
- Distortion of the branch prediction logic by invoking existing command sequences (gadgets) in the kernel that affect the buffer containing the history of branches. Such gadgets include the access control mechanism for system calls SECCOMP, which allows for false indirect branches in speculative mode through the substitution of custom BPF filters (filters in SECCOMP are set using classical cBPF, which is enabled by default, unlike eBPF). Testing on Intel Tiger Lake and Lion Cove CPU showed a leak speed of 1.7KB/sec when using this method.
- Using Instruction Pointer (IP) collisions in the branch prediction block. An attacker can create conditions under which the address for speculative branching is chosen solely based on an already existing address in the buffer, ignoring the history of branches. The idea is that one indirect branch operation can influence another if there is a collision when storing hashes of their addresses in the BTB (Branch Target Buffer).
- Using the influence of direct branches on the prediction of indirect branches. This behavior is caused by two hardware vulnerabilities: CVE-2024-28956 — ITS (Indirect Target Selection) and CVE-2025-24495 — an issue in Intel CPUs with Lion Cove cores. The data leak speed from memory when using this method was 17 KB/sec. In the demonstrated exploit to determine the hash of the root user's password stored in memory after the 'passwd -s' command was executed, it took 60 seconds.

All Intel CPUs that support the eIBRS mechanism, including Intel Coffee Lake and Lion Cove CPUs, are susceptible to an attack that corrupts the branch history buffer. To mitigate the vulnerability, Intel has released a microcode update implementing a new instruction, IBHF (Indirect Branch History Fence), which is recommended to be specified after the code affecting the branch history buffer. For older Intel CPUs, a software method for clearing the branch history is suggested. A change has been integrated into the Linux kernel, adding both software and hardware protection against attacks, implemented using cBPF. AMD stated that this attack method does not affect its CPUs. ARM reported that the issue only concerns older ARM processors, which are vulnerable to Spectre-v2 attacks and do not support the FEAT_CSV2_3 and FEAT_CLRBHB extensions.
The Indirect Target Selection (ITS, CVE-2024-28956) vulnerability affects Intel Core CPUs from the 9th to 11th generations (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake, and Rocket Lake) and Intel Xeon CPUs from the 2nd to 3rd generations. The CVE-2025-24495 vulnerability manifests in CPUs based on the Lunar Lake and Arrow Lake microarchitectures. The issues have been addressed in yesterday's microcode update. A change has been made to the Linux kernel to block the problem by moving indirect branches to the top of the cache line.
Source: opennet.ru
