NjĂ« grup hulumtuesish nga Universiteti i LirĂ« i Amsterdamit identifikoi disa dobĂ«si tĂ« reja tĂ« klasĂ«s Spectre-v2, tĂ« publikuara me emrin kod Training Solo, qĂ« lejojnĂ« kalimin e mekanizmave tĂ« izolimit tĂ« memories. NĂ« kontekstin e sistemeve tĂ« virtualizimit, kĂ«to dobĂ«si ofrojnĂ« mundĂ«sinĂ« pĂ«r tĂ« pĂ«rcaktuar pĂ«rmbajtjen e memories sĂ« ambientit host nga sistemet mysafirĂ«, dhe nĂ« kontekstin e serverĂ«ve â tĂ« pĂ«rcaktojnĂ« pĂ«rmbajtjen e memories sĂ« bĂ«rthamĂ«s gjatĂ« ekzekutimit tĂ« njĂ« eksploiti nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit. Shembuj eksploitesh pĂ«r kryerjen e sulmeve tĂ« tilla janĂ« publikuar nĂ« GitHub. Eksplotet e paraqitura lejojnĂ« nxjerrjen e tĂ« dhĂ«nave tĂ« caktuara nga memoria e bĂ«rthamĂ«s me shpejtĂ«si 17 KB/s, dhe nga memoria e hipervizorit â 8.5 KB/s.
Në sulmet e klasës Spectre-v2, për të organizuar rrjedhjet e të dhënave, përdoret zëvendësimi i vlerave në tamponin e adresës së degeve (Branch Target Buffer) ose tamponi i historisë së kalimeve (Branch History Buffer), të cilat përdoren për parashikimin e operacionit të ardhshëm të degeve. Përmes manipulimeve me historinë e kalimeve krijohen kushte për parashikimin e gabuar të deges gjatë ekzekutimit spekulativ të instrukcioneve. Objektivi i sulmuesit është që gjatë ekzekutimit të një operacioni spekulativ të deges, adresa për kalimin të merret nga një zonë e dëshiruar e memories. Pas ekzekutimit të kalimit spekulativ, në cache-in e procesorit mbetet adresa e lexuar nga memoria (në formën e adrese që lexon të dhënat e nevojshme për sulmuesin nga memoria). Një nga metodat për nxjerrjen e informacionit nga cache mund të jetë një mënyrë e përcaktimit të përmbajtjes së cache-it, bazuar në analizën e ndryshimit të kohës së aksesit në të dhëna të mbajtura në cache dhe jo të mbajtura në cache.
Metodat e sulmit Training Solo janĂ« tĂ« orientuara pĂ«r tĂ« kaluar mekanizmat e izolimit tĂ« zonave tĂ« ekzekutimit (domain isolation), tĂ« tilla si IBPB, eIBRS dhe BHI_NO, tĂ« cilat pĂ«rdoren pĂ«r tĂ« bllokuar sulmet e klasĂ«s Spectre-v2. PĂ«r shembull, instruksioni IBPB (Indirect Branch Prediction Barriers) siguron pastrimin e gjendjes sĂ« bllokut tĂ« parashikimit tĂ« kalimeve me çdo ndĂ«rrim konteksti â gjatĂ« kalimit nga hapĂ«sira e pĂ«rdoruesit nĂ« bĂ«rthamĂ« ose midis sistemit mysafir dhe ambientit host. Pastrimi i gjendjes bllokon mundĂ«sinĂ« e pĂ«rdorimit tĂ« kodit tĂ« vet pĂ«r tĂ« ndikuar nĂ« sjelljen e bllokut tĂ« parashikimit tĂ« kalimeve tĂ« tĂ«rthorta.
Dallimet në metodat e Training Solo janë se për të ndikuar në bllokun e parashikimit të kalimeve, propozohet të mos ekzekutohet kodi që është nën kontrollin e sulmuesit, por të përdoret kodi që tashmë ekziston në anën e zonës privilegjuese të ekzekutimit (bërthama ose hipervizori), nga e cila sulmuesi synon të arrijë rrjedhjet. Në të tjera aspekte, metodat janë të ngjashme me sulmin klasik Spectre-v2. Përveç kësaj, hulumtuesit identifikuan dy probleme harduerike (CVE-2024-28956 dhe CVE-2025-24495) që lejojnë kalimin e plotë të izolimit të zonave të ekzekutimit dhe realizimin e rrjedhjeve nga proceset e përdoruesve të tjerë, sistemet mysafirë të tjerë ose ambientin host.

Janë propozuar tre lloje sulmesh Training Solo:
- Shkurtimi i logjikës së parashikimit të kalimeve përmes thirrjes së sekuencave të komandave që tashmë ekzistojnë në bërthamë (gadget), që ndikojnë në përmbajtjen e tamponit të historisë së kalimeve. Si gadgete të tillë propozohet përdorimi i mekanizmit të kufizimit të aksesit në thirrjet sistemike SECCOMP, i cili lejon përmes zëvendësimit të filtreve të tij BPF të arrijë një kalim të gabuar të orientuar në një mod spekulativ (filtrat në SECCOMP përcaktohen përmes cBPF klasike, të aktivizuar nga default në krahasim me eBPF). Gjatë testimit në CPU Intel Tiger Lake dhe Lion Cove, shpejtësia e rrjedhjes me këtë metodë ishte 1.7 KB/s.
- Përdorimi i kolizionit të IP (Instruction Pointer) në bllokun e parashikimit të kalimeve. Sulmuesi mund të krijojë kushte, në të cilat adresa për një kalim spekulativ do të zgjidhte vetëm bazuar në adresën e kalimit të tashëm në tampon, pa marrë parasysh historinë e kalimeve. Ideja është se një operacion i kalimit tërthor mund të ndikojë në tjetrin, nëse ndodh një kolizion në ruajtjen e hash-eve të adresave të tyre në BTB (Branch Target Buffer).
- PĂ«rdorimi i ndikimit tĂ« kalimeve tĂ« drejtpĂ«rdrejta nĂ« parashikimin e kalimeve tĂ« tĂ«rthorta. Ky sjellje Ă«shtĂ« shkaktuar nga dy dobĂ«si harduerike: CVE-2024-28956 â ITS (Indirect Target Selection) dhe CVE-2025-24495 â njĂ« problem nĂ« CPU Intel me bĂ«rthamat Lion Cove. ShpejtĂ«sia e rrjedhjes sĂ« tĂ« dhĂ«nave nga memoria me kĂ«tĂ« metodĂ« ishte 17 KB/s. NĂ« eksploatin e demonstruar pĂ«r pĂ«rcaktimin e hash-it tĂ« fjalĂ«kalimit tĂ« pĂ«rdoruesit root, tĂ« ruajtur nĂ« memory pas thirrjes sĂ« komandĂ«s 'passwd -s', u shpenzuan 60 sekonda.

Të gjithë CPU-të Intel, të cilat mbështesin mekanizmin e eIBRS, janë të rrezikuar nga sulmet që deformojnë bufumin e historisë së kalimit, duke përfshirë CPU-të Intel Coffee Lake dhe Lion Cove. Për të bllokuar këtë vulnerabilitet, kompania Intel ka lëshuar një përditësim mikro kodi me implementimin e një urdhri të ri IBHF (Indirect Branch History Fence), i cili rekomandohet të vendoset pas kodit që ndikon në bufumin e historisë së kalimit. Për CPU-të më të vjetra Intel, sugjerohet përdorimi i një metode programore për pastrimin e historisë së kalimit. Në kernelin Linux është pranuar një ndryshim, që shton mbrojtjen programore dhe harduerike nga sulmet, të realizuara duke përdorur cBPF. Kompania AMD ka deklaruar se për CPU-të e saj metoda e sulmit nuk funksionon. Kompania ARM ka raportuar se problemi prek vetëm procesorët e vjetër ARM, të cilët janë të cenueshëm ndaj sulmeve Spectre-v2 dhe nuk mbështesin zgjerimet FEAT_CSV2_3 dhe FEAT_CLRBHB.
Vulnerabiliteti Indirect Target Selection (ITS, CVE-2024-28956) prek CPU-të Intel Core të 9-11 brezave (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake dhe Rocket Lake) dhe Intel Xeon të brezave 2-3. Vulnerabiliteti CVE-2025-24495 shfaqet në CPU-të e bazuar në mikroarkitekturën Lunar Lake dhe Arrow Lake. Problemet janë zgjidhur në përditësimin e mikro kodit të djeshëm. Në kernelin Linux është pranuar një ndryshim, që bllokon problemin përmes nxjerrjes së kalimeve indirekte në pjesën e sipërme të rreshtit të memorie.
Burimi: opennet.ru
