Tavis Ormandy, istraživač sigurnosti u Google-u, identifikovao je novu ranjivost (CVE-2023-23583) u Intelovim procesorima, kodnog naziva Reptar, koja uglavnom predstavlja prijetnju za cloud sisteme koji pokreću virtuelne mašine različitih korisnika. Ranjivost dozvoljava sistemu da visi ili se sruši kada se određene operacije izvode na neprivilegovanim gostujućim sistemima. Za testiranje vaših sistema objavljen je uslužni program koji stvara uslove za ispoljavanje ranjivosti.
Teoretski, ranjivost se može koristiti za eskalaciju privilegija s trećeg na nulti zaštitni prsten (CPL0) i bijeg iz izolovanih okruženja, ali ovaj scenario još nije potvrđen u praksi zbog poteškoća u otklanjanju grešaka na mikroarhitektonskom nivou. Interni pregled u Intelu je takođe pokazao potencijal za iskorišćavanje ranjivosti za eskalaciju privilegija pod određenim uslovima.
Prema istraživaču, ranjivost je prisutna u porodicama procesora Intel Ice Lake, Rocket Lake, Tiger Lake, Raptor Lake, Alder Lake i Sapphire Rapids. U Intelovom izvještaju se navodi da se problem pojavljuje počevši od 10. generacije (Ice Lake) Intel Core procesora i treće generacije Xeon Scalable procesora, kao i kod Xeon E/D/W procesora (Ice Lake, Skylake, Haswell, Broadwell , Skylake, Sapphire Rapids, Emerald Rapids, Cascade Lake, Cooper Lake, Comet Lake, Rocket Lake) i Atom (Apollo Lake, Jasper Lake, Arizona Beach, Alder Lake, Parker Ridge, Snow Ridge, Elkhart Lake i Denverton). Predmetna ranjivost je ispravljena u jučerašnjem ažuriranju mikrokoda 20231114.
Ranjivost je uzrokovana činjenicom da je pod određenim mikroarhitektonskim okolnostima izvršenje “REP MOVSB” instrukcije kodirano prekomjernim prefiksom “REX”, što dovodi do nedefiniranog ponašanja. Problem je otkriven tokom testiranja redundantnih prefiksa, što bi u teoriji trebalo zanemariti, ali je u praksi dovelo do čudnih efekata, kao što je ignorisanje bezuslovnih grana i razbijanje čuvanja pokazivača u xsave i call instrukcijama. Dalja analiza je pokazala da dodavanje redundantnog prefiksa instrukciji "REP MOVSB" uzrokuje oštećenje sadržaja ROB (ReOrder Buffer) bafera koji se koristi za naručivanje instrukcija.
Vjeruje se da je greška uzrokovana pogrešnim proračunom veličine "MOVSB" instrukcije, što dovodi do kršenja adresiranja instrukcija upisanih u ROB međuspremnik nakon MOVSB-a s prekomjernim prefiksom i pomakom pokazivača instrukcija. Takva desinhronizacija se može ograničiti na prekid međuproračuna sa naknadnim vraćanjem integralnog stanja. Ali ako srušite više jezgara ili SMT niti u isto vrijeme, možete oštetiti mikroarhitekturno stanje dovoljno da se sruši.
izvor: opennet.ru
