Haavatavus Linuxi 6.2 tuumas, mis võib Spectre v2 rünnakukaitsest mööda minna

Linuxi tuumas 6.2 on tuvastatud haavatavus (CVE-2023-1998), mis keelab kaitse Spectre v2 rünnakute eest, mis võimaldavad juurdepääsu muude protsesside mälule, mis töötavad erinevates SMT või Hyper Threadingi lõimedes, kuid samas füüsilises protsessoris tuum. Haavatavust saab muu hulgas kasutada pilvesüsteemides olevate virtuaalmasinate vahel andmete lekke tekitamiseks. Probleem mõjutab ainult Linuxi 6.2 tuuma ja selle põhjuseks on Spectre v2 kaitse rakendamisega kaasnevate märkimisväärsete kulude vähendamiseks mõeldud optimeerimiste vale rakendamine. Haavatavus parandati Linuxi 6.3 kerneli eksperimentaalses harus.

Spectre rünnakute eest kaitsmiseks saavad protsessid kasutajaruumis valikuliselt keelata käskude spekulatiivse täitmise, kasutades prctl PR_SET_SPECULATION_CTRL või kasutada seccomp-mehhanismil põhinevat süsteemikõnede filtreerimist. Probleemi tuvastanud teadlaste sõnul jättis kerneli 6.2 vale optimeerimine vähemalt ühe suurema pilveteenuse pakkuja virtuaalsed masinad ilma korraliku kaitseta, hoolimata sellest, et prctl-i kaudu oli kaasatud spektri-STI rünnaku blokeerimisrežiim. Haavatavus ilmneb ka tavalistes kerneliga 6.2 serverites, mille laadimisel kasutatakse sätet “spectre_v2=ibrs”.

Haavatavuse olemus seisneb selles, et IBRS-i või eIBRS-i kaitserežiimide valimisel keelasid kasutusele võetud optimeerimised STIBP (Single Thread Indirect Branch Predictors) mehhanismi kasutamise, mis on vajalik lekete blokeerimiseks samaaegse mitmelõimelise tehnoloogia (SMT või Hyper- Keermestamine). Kuid ainult eIBRS-režiim pakub kaitset lõimedevahelise lekke eest, kuid mitte IBRS-režiimi, kuna sel juhul tühjendatakse IBRS-i bitt, mis pakub kaitset loogiliste tuumade vahel lekete eest, jõudluse huvides, kui juhtimine naaseb kasutajaruumi, mis muudab kasutajaruumis olevad lõimed pole kaitstud Spectre v2 rünnakute eest.

Allikas: opennet.ru

Lisa kommentaar