En gruppe forskere fra Amsterdam Universitetet har identificeret flere nye sårbarheder i Spectre-v2-klassen, offentliggjort under kodenavnet Training Solo, som muliggør omgåelse af hukommelsesisoleringsmekanismer. I konteksten af virtualiseringssystemer giver sårbarhederne mulighed for at bestemme indholdet af værtsmiljøets hukommelse fra gæstesystemer, og i konteksten af servere muliggør de at bestemme indholdet af kernehukommelsen, mens exploiten kører i brugerrummet. Eksempler på exploits til at udføre sådanne angreb er offentliggjort på GitHub. De præsenterede exploits gør det muligt at udtrække vilkårlige data fra kernehukommelsen med en hastighed på 17 KB/s, og fra hypervisorens hukommelse med 8,5 KB/s.
I Spectre-v2-angreb anvendes der substituering af værdier i bufferne til branch target buffer eller branch history buffer, som anvendes til at forudsige den næste branching-operation, for at lette dataudslip. Gennem manipulation af historikken for overgangene skabes betingelser for en forkert forudsigelse af overgangen ved spekulativ udførelse af instruktioner. Angrebsemmets opgave er, at adressen til overgangen under udførelsen af den spekulative branching-operation tages fra det ønskede område af hukommelsen. Efter udførelsen af den spekulative overgang forbliver den læste adresse fra hukommelsen i cachelaget (i form af adressen læses de nødvendige data fra hukommelsen for angriberen). En af metoderne til at udtrække information fra cachen kan anvendes til at bestemme indholdet af cachen baseret på analysen af ændringen i adgangstiden til cachelagrede og ikke-cachelagrede data.
Training Solo-angrebsmåderne er målrettet mod at omgå mekanismerne til isolering af udførelsesområder (domain isolation), såsom IBPB, eIBRS og BHI_NO, der anvendes til at blokere angreb af Spectre-v2-klassen. For eksempel sikrer IBPB-instruktionen (Indirect Branch Prediction Barriers) nulstilling af tilstanden i blokken for forudsigelse af overgange ved hver kontekskift — ved overførsel af kontrol mellem brugerrummet og kernen eller mellem gæstesystemet og værtsmiljøet. Nulstillingen af tilstanden blokkerer muligheden for at bruge egen kode til at påvirke adfærden af blokken til forudsigelse af indirekte overgange.
Forskellene mellem Training Solo-metoderne ligger i, at man for at påvirke overgangen til prædiktionsblokken ikke foreslår at køre kode, der er under angriberens kontrol, men bruger kode, der allerede findes i den privilegerede udførelsesområde (kerne eller hypervisor), hvis lækager angriberen kan opnå. Ellers ligner metoderne et klassisk Spectre-v2-angreb. Derudover identificerede forskerne to hardwarefejl (CVE-2024-28956 og CVE-2025-24495), som fuldstændig kan omgå isoleringen af udførelsesområder og muliggøre lækager fra processer fra andre brugere, andre gæstesystemer eller værtmiljøet.

Der foreslås tre typer angreb med Training Solo:
- Forvridning af logikken i prædiktionsafgange ved at kalde allerede eksisterende sekvenser af kommandoer (gadgets) i kernen, som påvirker indholdet af bufferhistorikken. Som sådanne gadgets foreslås mekanismen til begrænsning af adgang til systemopkald SECCOMP, som tillader falske indirekte overgange i spekulativ tilstand gennem substitution af ens egne BPF-filtre (filtre i SECCOMP defineres ved hjælp af klassisk cBPF, som er slået til som standard i modsætning til eBPF). Under tests på Intel CPU-modellerne Tiger Lake og Lion Cove var hastigheden for lækagen ved brug af denne metode 1,7 KB/s.
- Brug af IP-kollisionsmetoden (Instruction Pointer) i prædiktionsblokken. Angriberen kan skabe betingelser, hvor adressen for den spekulative overgang kun vælges baseret på den allerede eksisterende adresse i bufferet, uden at tage hensyn til historikken for overgange. Ideen er, at en indirekte overgang kan påvirke en anden, hvis der opstår en kollision ved opbevaring af hasherne af deres adresser i BTB (Branch Target Buffer).
- Brug af direkte overganges indflydelse på prædiktive indirekte overgange. Denne adfærd skyldes to hardwareanfald: CVE-2024-28956 — ITS (Indirect Target Selection) og CVE-2025-24495 — et problem med Intel CPU'er med Lion Cove-kerner. Hastigheden for datalækage fra hukommelsen ved brug af denne metode var 17 KB/s. I det viste exploit til at bestemme hash-værdien af root-brugerens adgangskode, der er gemt i hukommelsen efter at have kørt kommandoen «passwd -s», blev der brugt 60 sekunder.

Alle Intel CPU, der understøtter eIBRS-mekanismen, herunder Intel Coffee Lake og Lion Cove, er sårbare over for bufferoverflowsigter for historikken af overgange. For at blokere for sårbarheden har Intel frigivet en mikrocodeopdatering med en ny instruktion kaldet IBHF (Indirect Branch History Fence), som foreslås at inkludere efter koden, der påvirker bufferen for overgange. For ældre Intel CPU'er anbefales det at bruge en softwaremetode til at rydde overgangehistorikken. Der er indført en ændring i Linux-kernen, som tilføjer både software- og hardware. beskyttelse mod angreb, der udføres ved hjælp af cBPF. AMD har udtalt, at angrebsmetoden ikke virker på deres CPU'er. ARM har meddelt, at problemet kun påvirker ældre ARM-processorer, der er sårbare over for Spectre-v2-angreb og ikke understøtter udvidelserne FEAT_CSV2_3 og FEAT_CLRBHB.
Sårbarheden Indirect Target Selection (ITS, CVE-2024-28956) påvirker Intel Core CPU'er fra 9. til 11. generation (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake og Rocket Lake) samt Intel Xeon CPU'er fra 2. til 3. generation. Sårbarheden CVE-2025-24495 indtræffer i CPU'er baseret på mikroarkitekturerne Lunar Lake og Arrow Lake. Problemerne er blevet løst i gårsdagens mikrocodeopdatering. Der er indført en ændring i Linux-kernen, som blokerer problemet ved at flytte indirekte overgange til toppen af cachelinjen.
Kilde: opennet.ru
