njĂ« grup studiuesish nga Universiteti i LirĂ« i Amsterdamit ka identifikuar disa dobĂ«si tĂ« reja tĂ« klasĂ«s Spectre-v2, tĂ« publikuara me emrin kodues Training Solo, qĂ« lejojnĂ« kalimin e mekanizmave tĂ« izolimit tĂ« memorjes. NĂ« kontekstin e sistemeve tĂ« virtualizimit, dobĂ«sitĂ« ofrojnĂ« mundĂ«sinĂ« pĂ«r tĂ« identifikuar pĂ«rmbajtjen e memorjes sĂ« mjedisit pritĂ«s nga sistemet e mysafirĂ«ve, dhe nĂ« kontekstin e serverĂ«ve â pĂ«r tĂ« identifikuar pĂ«rmbajtjen e memorjes sĂ« bĂ«rthamĂ«s gjatĂ« ekzekutimit tĂ« njĂ« eksploiti nĂ« hapĂ«sirĂ«n e pĂ«rdoruesit. Shembuj tĂ« eksploiteve pĂ«r tĂ« kryer sulme tĂ« tilla janĂ« publikuar nĂ« GitHub. EksploitĂ« tĂ« paraqitur lejojnĂ« nxjerrjen e tĂ« dhĂ«nave tĂ« rastĂ«sishme 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 organizimin e rrjedhjes së të dhënave përdoret zëvendësimi i vlerave në tamponin e adresave të degëve (Branch Target Buffer) ose tamponin e historisë së kalimeve (Branch History Buffer), të cilat përdoren për parashikimin e operacionit të ardhshëm të degës. Përmes manipulimeve me historinë e kalimeve krijohen kushte për parashikimin e gabuar të kalimit gjatë ekzekutimit spekulativ të instrukcioneve. Qëllimi i sulmuesit është që gjatë ekzekutimit të një operacioni spekulativ të degës, adresa për kalim të jetë e marrë nga zona e dëshiruar e memorjes. Pas përfundimit të kalimit spekulativ, në cache të procesorit mbetet adresa e kalimit e lexuar nga memoria (nën formën e adresës, të dhënat e nevojshme për sulmuesin lexohen nga memoria). Një nga metodat e nxjerrjes së informacionit nga cache mund të përdorë një mënyrë identifikimi të përmbajtjes së cache bazuar në analizën e ndryshimit të kohës së aksesit në të dhënat e cache dhe ato që nuk janë të cache.
Metodat e sulmit Training Solo kanĂ« si qĂ«llim kalimin e mekanizmave tĂ« izolimit tĂ« rajoneve tĂ« ekzekutimit (domain isolation), si IBPB, eIBRS dhe BHI_NO, tĂ« cilat pĂ«rdoren pĂ«r tĂ« bllokuar sulmet e klasĂ«s Spectre-v2. PĂ«r shembull, instrukcioni IBPB (Indirect Branch Prediction Barriers) siguron zerimin e gjendjes sĂ« bllokut tĂ« parashikimit tĂ« kalimeve me çdo ndĂ«rrim konteksti â gjatĂ« kalimit tĂ« kontrollit midis hapĂ«sirĂ«s sĂ« pĂ«rdoruesit dhe bĂ«rthamĂ«s ose midis sistemit mysafir dhe mjedisit pritĂ«s. Zerimi i gjendjes bllokon mundĂ«sinĂ« e pĂ«rdorimit tĂ« kodit tĂ« vet pĂ«r tĂ« ndikuar nĂ« sjelljen e bllokut tĂ« parashikimit tĂ« kalimeve indirekte.
Dallimet e metodave Training Solo janë se për të ndikuar në bllokun e parashikimit të kalimeve propozohet të mos ekzekutohet kodi i kontrolluar nga sulmuesi, por të përdoret kodi që tashmë ekziston në anën e zonës privilegjuar të ekzekutimit (në bërthamë ose hipervizor), nga i cili sulmuesi arrin të nxjerrë informacione. Për të tjerat, metodat janë të ngjashme me sulmin klasik Spectre-v2. Përveç kësaj, studiuesit zbuluan dy probleme harduerike (CVE-2024-28956 dhe CVE-2025-24495) që lejojnë të anashkalojnë plotësisht izolimin e zonave të ekzekutimit dhe të realizojnë rrjedhje nga proceset e përdoruesve të tjerë, sistemeve të tjera mysafirë ose mjedisit të hostit.

Tre lloje sulmesh Training Solo janë propozuar:
- Keqinterpretimi i logjikës së parashikimit të kalimeve përmes thirrjes së sekuencave të komandave ekzistuese në bërthamë (gadgeteve), që ndikon në përmbajtjen e buferit me historinë e kalimeve. Si gadgete të tilla propozohet të përdoret mekanizmi i kufizimit të qasjes në thirrjet sistemike SECCOMP, i cili lejon, përmes zëvendësimit të filtrave të tij BPF, të arrijë një kalim të rremë indirekt në modin spekullativ (filtrat në SECCOMP vendosen përmes cBPF të klasës, të cilat janë të aktivizuara në mënyrë të parazgjedhur në krahasim me eBPF). Gjatë testimeve në CPU-në Intel Tiger Lake dhe Lion Cove, shpejtësia e rrjedhjes me këtë metodë ishte 1.7KB/sek.
- Përdorimi i kolizionëve IP (Instruction Pointer) në bllokun e parashikimit të kalimeve. Sulmuesi mund të krijojë kushte në të cilat adresa për kalimin spekullativ do të zgjidhet vetëm në bazë të adresës së kalimit tashmë të pranishme në bufer, pa marrë parasysh historinë e kalimeve. Ideja është se një operacion kalimi indirekt mund të ndikojë në një tjetër, nëse ndodh kolizioni gjatë ruajtjes së hashes së adresave të tyre në BTB (Branch Target Buffer).
- PĂ«rdorimi i ndikimit tĂ« kalimeve tĂ« drejtpĂ«rdrejta nĂ« parashikimin e kalimeve tĂ« ndyra. Sjellja e tillĂ« Ă«shtĂ« shkaktuar nga dy vulnerabilitete harduerike: CVE-2024-28956 â ITS (Indirect Target Selection) dhe CVE-2025-24495 â njĂ« problem nĂ« CPU-nĂ« Intel me bĂ«rthama Lion Cove. ShpejtĂ«sia e rrjedhjes sĂ« tĂ« dhĂ«nave nga memoria me kĂ«tĂ« metodĂ« ishte 17 KB/sek. NĂ« demonstrimin e eksploatimit pĂ«r pĂ«rcaktimin e hash-it tĂ« fjalĂ«kalimit tĂ« pĂ«rdoruesit root, tĂ« ruajtur nĂ« memorie pas thirrjes sĂ« komandĂ«s "passwd -s", u shpenzuan 60 sekonda.

Të gjitha procesorët Intel që mbështesin mekanizmin e eIBRS, duke përfshirë CPU-të Intel Coffee Lake dhe Lion Cove, janë të ekspozuar ndaj sulmeve që deformojnë buferrin me historinë e kalimeve. Për të bllokuar këtë dobësi, kompania Intel lëshoi një përditësim të kodit të mikroprocesorit me implementimin e një instruksioni të ri IBHF (Indirect Branch History Fence), i cili rekomandohet të specifikohet pas kodit që ndikon në buferrin e historisë së kalimeve. Për CPU-të më të vjetra të Intel, është propozuar të përdoret një metodë softuerike për pastrimin e historisë së kalimeve. Një ndryshim është pranuar në bërthamën Linux që përfshin metoda softuerike dhe harduerike mbrojtjen nga sulmet, të cilat realizohen duke përdorur cBPF. Kompania AMD njoftoi se metoda e sulmit nuk aplikohet në CPU-të e saj. Kompania ARM raportoi se problemi i prek vetëm procesorët e vjetër ARM, të ekspozuar ndaj sulmeve Spectre-v2 dhe që nuk mbështesin zgjerimet FEAT_CSV2_3 dhe FEAT_CLRBHB.
Dobësia Indirect Target Selection (ITS, CVE-2024-28956) prek CPU-të Intel Core të gjeneratave 9-11 (Cascade Lake, Cooper Lake, Whiskey Lake V, Coffee Lake R, Comet Lake, Ice Lake, Tiger Lake dhe Rocket Lake) dhe Intel Xeon të gjeneratave 2-3. Dobësia CVE-2025-24495 shfaqet në CPU-të e bazuara në mikroarkitekturën Lunar Lake dhe Arrow Lake. Problemet janë zgjidhur në përditësimin e mikrokodit të djeshëm. Një ndryshim është pranuar në bërthamën Linux, që bllokon të problema duke e çuar kalimin e tërthorëve në pjesën e sipërme të linjës së caches.
Burimi: opennet.ru
