Linux 6.2 -ytimen haavoittuvuus, joka voi ohittaa Spectre v2 -hyökkäyssuojauksen

Linux 6.2 -ytimessä (CVE-2023-1998) on havaittu haavoittuvuus, joka poistaa suojauksen Spectre v2 -hyökkäyksiltä, ​​jotka mahdollistavat pääsyn muiden prosessien muistiin, jotka toimivat eri SMT- tai Hyper Threading -säikeissä, mutta samassa fyysisessä prosessoriytimessä. Haavoittuvuuden avulla voidaan muun muassa järjestää datavuotoa virtuaalikoneiden välillä pilvijärjestelmissä. Ongelma vaikuttaa vain Linux 6.2 -ytimeen, ja sen aiheuttaa virheellinen optimointi, joka on suunniteltu vähentämään merkittäviä ylimääräisiä kustannuksia käytettäessä suojausta Spectre v2:ta vastaan. Haavoittuvuus korjattiin Linux 6.3 -ytimen kokeellisessa haarassa.

Suojatakseen käyttäjätilassa Spectre-hyökkäyksiä vastaan ​​prosessit voivat valikoivasti poistaa spekulatiivisen käskyn suorittamisen käytöstä prctl:llä PR_SET_SPECULATION_CTRL tai käyttää seccomp-pohjaista järjestelmäkutsusuodatusta. Ongelman tunnistaneiden tutkijoiden mukaan virheellinen optimointi 6.2-ytimessä jätti ainakin yhden suuren pilvipalveluntarjoajan virtuaalikoneet ilman asianmukaista suojausta huolimatta siitä, että spectre-BTI-hyökkäyksen estotila sisällytettiin prctl:n kautta. Haavoittuvuus ilmenee myös tavallisilla palvelimilla, joissa on 6.2-ydin ja jotka käynnistetään "spectre_v2=ibrs"-asetuksen avulla.

Haavoittuvuuden ydin on, että IBRS- tai eIBRS-suojaustiloja valittaessa tehdyt optimoinnit estivät STIBP-mekanismin (Single Thread Indirect Branch Predictors) käytön, joka on välttämätön vuotojen estämiseksi käytettäessä samanaikaista monisäikeistä tekniikkaa (SMT tai Hyper-Threading). ). Samaan aikaan vain eIBRS-tila tarjoaa suojan säikeiden välistä vuotoa vastaan, mutta ei IBRS-tilaa, koska sen avulla IBRS-bitti, joka tarjoaa suojan loogisten ytimien välistä vuotoa vastaan, tyhjenee suorituskykysyistä, kun ohjaus palaa käyttäjätilaan, mikä tekee käyttäjätilan säikeistä suojaamattomia Spectre v2 -luokan hyökkäyksiltä.

Lähde: opennet.ru

Lisää kommentti