Linux'i tuumas on tuvastatud kaks haavatavust, mis vĂ”imaldavad kasutada eBPF alamsĂŒsteemi Spectre v4 (SSB, spekulatiivse salvestamise ĂŒmbersuunamine) rĂŒnnakutest kaitsmise ĂŒmberkasutamiseks. Kasutades privileegideta BPF-programmi, vĂ”ib rĂŒndaja luua tingimused teatud operatsioonide spekulatiivseks tĂ€itmiseks ja mÀÀrata tuuma juhuslike mĂ€lualade sisu. eBPF alamsĂŒsteemid tuumas on saanud kĂ€tte eksploiteerimise prototĂŒĂŒbi, mis demonstreerib rĂŒnnakute vĂ”imalust praktikas. Probleemid on lahendatud plaastrites (1, 2), mis kuuluvad jĂ€rgmisse Linuxi tuuma vĂ€rskendusse. VĂ€rskendusi distributsioonides (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu) ei ole veel loodud.
Spectre 4 rĂŒnnaku meetod pĂ”hineb andmete taastamisel, mis on procesaari vahemĂ€lus jÀÀnud pĂ€rast spekulatiivse tĂ€itmise tulemuse tagasi lĂŒkkamist kirjutamise ja lugemise vaheldumise operatsioonide kĂ€itlemisel, kasutades kaudset adresseerimist. Kui lugemisoperatsioon jĂ€rgneb kirjutamisoperatsioonile (nĂ€iteks, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), vĂ”ib lugemisadresseerimise nihke vÀÀrtus olla juba tuntud, kuna on tehtud sarnaseid operatsioone (lugemisoperatsioonid toimub oluliselt sagedamini ja lugemine vĂ”ib toimuda vahemĂ€lust), ning protsessor vĂ”ib spekulatiivselt lugemist enne kirjutamist tĂ€ita, ootamata, kuni kaudse adresseerimise nihke vÀÀrtus arvutatakse.
Kui nihke arvutamise jĂ€rel tuvastatakse mĂ€lualade ĂŒhtimine kirjutamise ja lugemise jaoks, lĂŒkkab protsessor tagasi juba spekulatiivselt saadud lugemise tulemuse ja kordab seda operatsiooni. See omadus vĂ”imaldab lugemisinstruktsioonil pÀÀseda vanale vÀÀrtusele mingi aadressi juures, samal ajal kui salvestamise operatsioon pole veel lĂ”petatud. PĂ€rast ebaĂ”nnestunud spekulatiivse operatsiooni tagasi lĂŒkkamist jÀÀvad vahemĂ€lusse jĂ€ljed selle tĂ€itmisest, mille jĂ€rel vĂ”ib selle sisu vĂ€ljavĂ”tmiseks kasutada ĂŒht meetoditest, mis pĂ”hinevad vahemĂ€lu juurdepÀÀsu aja muutmise analĂŒĂŒsil.
Esimene haavatavus (CVE-2021-35477) on tingitud puudujÀÀkidest BPF-programmide kontrollimise mehhanismis. Spectre 4 rĂŒnnaku eest kaitsmiseks lisab valideerija pĂ€rast potentsiaalselt probleemsete mĂ€lu salvestamise operatsioonide tegemist lisakĂ€su, mis salvestab nullvÀÀrtuse, et hĂ€vitada eelmise operatsiooni jĂ€lgi. Eeldati, et nulli kirjutamise operatsioon toimub vĂ€ga kiiresti ja blokeerib spekulatiivse tĂ€itmise, kuna see sĂ”ltub ainult BPF-steki kaadrinĂ€idikust. Kuid tegelikkuses osutus vĂ”imalikuks luua tingimusi, kus spekulatiivse tĂ€itmise kĂ€sk jĂ”uab tĂ€ita enne hĂ€vitavat salvestamist.
Teine haavatavus (CVE-2021-3455) on seotud sellega, et kui BPF-valideerija tuvastab potentsiaalselt ohtlikke mĂ€lu salvestamise operatsioone, ei arvestata BPF-steki initsialiseerimata alasid, mille esimene kirjutamise operatsioon ei ole kaitstud. Selline eripĂ€ra vĂ”imaldab spekulatiivset lugemistegevust, mis sĂ”ltub initsialiseerimata mĂ€lu alast, enne salvestamise kĂ€su tĂ€itmist. BPF-steki jaoks eraldatakse uus mĂ€lu ilma olemasoleva mĂ€lu sisu kontrollimata ning enne BPF-programmi kĂ€ivitamist on vĂ”imalik kontrollida nĂŒĂŒd eraldatud mĂ€lu sisu.
Allikas: opennet.ru
