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

Identificirana je ranjivost u jezgru Linuxa 6.2 (CVE-2023-1998) koja onemogućava zaštitu od Spectre v2 napada koji omogućavaju pristup memoriji drugih procesa koji se pokreću na različitim SMT ili Hyper Threading nitima, ali na istom fizičkom jezgru procesora. Ranjivost se, između ostalog, može koristiti za organizovanje curenja podataka između virtuelnih mašina u cloud sistemima. Problem utječe samo na jezgro Linuxa 6.2 i uzrokovan je neispravnom implementacijom optimizacija dizajniranih da smanje značajne troškove prilikom primjene zaštite od Spectre v2. Ranjivost je ispravljena u eksperimentalnoj grani Linux 6.3 kernela.

U korisničkom prostoru, da bi se zaštitili od Spectre napada, procesi mogu selektivno onemogućiti spekulativno izvršavanje instrukcija s prctl PR_SET_SPECULATION_CTRL ili koristiti filtriranje sistemskih poziva zasnovano na seccomp. Prema istraživačima koji su identifikovali problem, pogrešna optimizacija u kernelu 6.2 ostavila je virtuelne mašine najmanje jednog velikog dobavljača oblaka bez odgovarajuće zaštite, uprkos uključivanju spectre-BTI načina blokiranja napada putem prctl-a. Ranjivost se takođe manifestuje na redovnim serverima sa 6.2 kernelom, koji se dižu pomoću postavke “spectre_v2=ibrs”.

Suština ranjivosti je u tome što su pri odabiru IBRS ili eIBRS načina zaštite, napravljene optimizacije onemogućile korištenje STIBP (Single Thread Indirect Branch Predictors) mehanizma, koji je neophodan za blokiranje curenja kada se koristi simultana višenitna tehnologija (SMT ili Hyper-Threading). ). Istovremeno, samo eIBRS način pruža zaštitu od curenja između niti, ali ne i IBRS način rada, budući da se s njim IBRS bit, koji pruža zaštitu od curenja između logičkih jezgara, briše iz razloga performansi kada se kontrola vrati u korisnički prostor, što čini nitima korisničkog prostora nezaštićenim od napada Spectre v2 klase.

izvor: opennet.ru

Dodajte komentar