Ranjivost u jezgri Linuxa 6.2 koja bi mogla zaobići Spectre v2 zaštitu od napada

U jezgri Linuxa 6.2 identificirana je ranjivost (CVE-2023-1998) koja onemogućuje zaštitu od napada Spectre v2, koji dopuštaju pristup memoriji drugih procesa koji se izvode u različitim SMT ili Hyper Threading nitima, ali na istom fizičkom procesoru jezgra. Ranjivost se, između ostalog, može koristiti za izazivanje curenja podataka između virtualnih strojeva u sustavima u oblaku. Problem utječe samo na jezgru Linuxa 6.2 i uzrokovan je netočnom implementacijom optimizacija osmišljenih da smanje značajne troškove primjene Spectre v2 zaštite. Ranjivost je popravljena u eksperimentalnoj grani jezgre Linux 6.3.

U korisničkom prostoru, za zaštitu od Spectre napada, procesi mogu selektivno onemogućiti spekulativno izvršavanje instrukcija koristeći prctl PR_SET_SPECULATION_CTRL ili koristiti filtriranje poziva sustava na temelju mehanizma seccomp. Prema istraživačima koji su identificirali problem, netočna optimizacija u kernelu 6.2 ostavila je virtualne strojeve barem jednog velikog pružatelja usluga oblaka bez odgovarajuće zaštite, unatoč uključivanju spectre-BTI načina blokiranja napada putem prctl-a. Ranjivost se također pojavljuje na regularnim poslužiteljima s kernelom 6.2, kada se učitavaju koristi se postavka “spectre_v2=ibrs”.

Suština ranjivosti je u tome što je pri odabiru načina zaštite IBRS ili eIBRS uvedene optimizacije onemogućile korištenje mehanizma STIBP (Single Thread Indirect Branch Predictors), koji je neophodan za blokiranje curenja pri korištenju istodobne tehnologije višenitnosti (SMT ili Hyper- Urezivanje navoja). Međutim, samo eIBRS način pruža zaštitu od curenja između niti, ali ne i IBRS način, budući da se u ovom slučaju IBRS bit, koji pruža zaštitu od curenja između logičkih jezgri, briše zbog performansi kada se kontrola vrati u korisnički prostor, što čini niti u korisničkom prostoru nisu zaštićene od napada Spectre v2.

Izvor: opennet.ru

Dodajte komentar