Een groep onderzoekers van de Vrije Universiteit Amsterdam heeft verschillende nieuwe kwetsbaarheden van de Spectre-v2 klasse ontdekt, gepubliceerd onder de codenaam Training Solo. Deze kwetsbaarheden maken het mogelijk om de mechanismen voor geheugenisolatie te omzeilen. In de context van virtualisatiesystemen bieden deze kwetsbaarheden de mogelijkheid om de inhoud van het geheugen van de hostomgeving te bepalen vanuit gastsystemen. In de context van servers kunnen ze de inhoud van het kernelgeheugen achterhalen tijdens het uitvoeren van een exploit in de gebruikersruimte. Voorbeelden van exploits voor dergelijke aanvallen zijn gepubliceerd op GitHub. De gepresenteerde exploits stellen in staat om willekeurige gegevens uit het kernelgeheugen te extraheren met een snelheid van 17 KB/sec, en uit het geheugen van de hypervisor met 8,5 KB/sec.
Bij Spectre-v2 aanvallen wordt voor het veroorzaken van datalekken de substitutie van waarden in de Branch Target Buffer of Branch History Buffer gebruikt, die worden toegepast voor de voorspelling van de volgende takoperatie. Door manipulatie van de takgeschiedenis worden condities gecreƫerd voor een onjuiste voorspelling van de tak tijdens het speculatieve uitvoering van instructies. Het doel van de aanvaller is om bij het uitvoeren van een speculatieve takoperatie het adres voor de tak uit het gewenste geheugengebied te halen. Na de uitvoering van de speculatieve tak blijft het adres dat uit het geheugen is gelezen in de procescache (onder de vorm van een adres worden de noodzakelijke gegevens voor de aanvaller uit het geheugen gelezen). Een van de methoden voor het extraheren van informatie uit de cache kan de bepaling van de inhoud van de cache zijn op basis van de analyse van de toegangstijden tot gecacheerde en niet-gecacheerde gegevens.
De aanvalsmethoden van Training Solo zijn gericht op het omzeilen van de mechanismen voor isolatie van uitvoeringsgebieden, zoals IBPB, eIBRS en BHI_NO, die worden toegepast om Spectre-v2 aanvallen te blokkeren. Bijvoorbeeld, de IBPB-instructie (Indirect Branch Prediction Barriers) zorgt voor het resetten van de status van de takvoorspellingsblok bij elke contextwisseling - bij de overdracht van controle tussen de gebruikersruimte en de kernel of tussen het gastensysteem en de hostomgeving. Het resetten van de status blokkeert de mogelijkheid om eigen code te gebruiken om invloed uit te oefenen op het gedrag van het blok voor indirecte takvoorspellingen.
De verschillen tussen de Training Solo-methoden zijn dat er wordt voorgesteld om geen code, die onder controle van de aanvaller staat, te starten om de blokkerende voorspellingsovergangen te beĆÆnvloeden, maar gebruik te maken van code die al aanwezig is aan de kant van de bevoegde uitvoeringsomgeving (kernel of hypervisor), waarvan de aanvaller lekken probeert te verkrijgen. Verder lijken de methoden op de klassieke Spectre-v2-aanval. Bovendien hebben onderzoekers twee hardwareproblemen ontdekt (CVE-2024-28956 en CVE-2025-24495), die het mogelijk maken om isolatie van uitvoeringsgebieden volledig te omzeilen en lekken uit de processen van andere gebruikers, andere gastsystemen of hostomgevingen te realiseren.

Er zijn drie soorten Training Solo-aanvallen voorgesteld:
- Vervorming van de logica van de voorspellingsovergangen door het aanroepen van al bestaande commando-reeksen (gadgets) in de kernel, die de inhoud van de overgangsverificatiebuffer beĆÆnvloeden. Als dergelijke gadgets wordt voorgesteld om het mechanisme voor toegangslimieten tot systeemaanroepen SECCOMP te gebruiken, dat door zijn eigen BPF-filters te substitueren een valse indirecte overgang kan bewerkstelligen in de speculatieve modus (filters in SECCOMP worden ingesteld met behulp van de klassieke cBPF, die standaard is ingeschakeld in tegenstelling tot eBPF). Bij tests op CPUs zoals Intel Tiger Lake en Lion Cove bedroeg de snelheid van het lekken met deze methode 1.7 KB/sec.
- Het gebruik van IP-collisies (Instruction Pointer) in het blok voor de voorspellingsovergangen. De aanvaller kan omstandigheden creëren waarbij het adres voor de speculatieve overgang alleen wordt geselecteerd op basis van het al aanwezige overgangsadres in de buffer, zonder rekening te houden met de geschiedenis van de overgangen. Het idee is dat één indirecte overgang een andere kan beïnvloeden, als er een collisie optreedt bij het opslaan van de hashes van hun adressen in de BTB (Branch Target Buffer).
- Het gebruik van de invloed van directe overgangen op de voorspelling van indirecte overgangen. Dit gedrag wordt veroorzaakt door twee hardwarekwetsbaarheden: CVE-2024-28956 ā ITS (Indirect Target Selection) en CVE-2025-24495 ā een probleem in de Intel-CPU met Lion Cove-cores. De snelheid van gegevenslekkage uit het geheugen bij het gebruik van deze methode bedroeg 17 KB/sec. In de gedemonstreerde exploit voor het achterhalen van de hash van het wachtwoord van de rootgebruiker, opgeslagen in het geheugen na het uitvoeren van het commando 'passwd -s', werd 60 seconden besteed.

Aanval die de buffer met de geschiedenis van overgangen vervormt, is mogelijk op alle Intel CPU's die de eIBRS-mechanisme ondersteunen, inclusief Intel Coffee Lake en Lion Cove CPU's. Om deze kwetsbaarheid te blokkeren, heeft Intel een microcode-update uitgegeven met de implementatie van een nieuwe instructie IBHF (Indirect Branch History Fence), die na de code die effect heeft op de geschiedenis van overgangen moet worden geplaatst. Voor oudere Intel CPU's wordt een softwarematige methode voorgesteld om de geschiedenis van overgangen te wissen. In de Linux-kernel is een wijziging aangenomen die zowel software- als hardwarematige oplossingen toevoegt. de bescherming tegen aanvallen, uitgevoerd met behulp van cBPF. AMD heeft verklaard dat deze aanvalsmethode niet van toepassing is op haar CPU's. ARM heeft gerapporteerd dat het probleem alleen oudere ARM-processors betreft die kwetsbaar zijn voor Spectre-v2-aanvallen en de extensies FEAT_CSV2_3 en FEAT_CLRBHB niet ondersteunen.
De kwetsbaarheid Indirect Target Selection (ITS, CVE-2024-28956) raakt Intel Core CPU's van de 9e tot 11e generatie (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake en Rocket Lake) en Intel Xeon CPU's van de 2e en 3e generatie. De kwetsbaarheid CVE-2025-24495 manifesteert zich op CPU's gebaseerd op de microarchitecturen Lunar Lake en Arrow Lake. Deze problemen zijn verholpen in de microcode-update van gisteren. In de Linux-kernel is een wijziging aangenomen die het probleem blokkeert door indirecte overgangen naar het bovenste deel van de cachelijn te verplaatsen.
Bron: opennet.ru
