Në thelb Linux Janë identifikuar dy dobësi që lejojnë që nënsistemi eBPF të përdoret për të anashkaluar sulmin Spectre v4 (SSB, Speculative Store Bypass). Duke përdorur një program BPF të paprivilegjuar, një sulmues mund të krijojë kushte për ekzekutimin spekulativ të operacioneve të caktuara dhe të përcaktojë përmbajtjen e zonave arbitrare të memories së bërthamës. Mirëmbajtësit e nënsistemit eBPF të bërthamës kanë fituar qasje në një shfrytëzim prototipi që demonstron mundësinë e kryerjes së sulmeve. Problemet janë adresuar në patch-e (1, 2), të cilat do të përfshihen në përditësimin e ardhshëm të bërthamës. LinuxPërditësimet në shpërndarje nuk janë gjeneruar ende (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).
Metoda e sulmit Spectre 4 bazohet në rivendosjen e të dhënave të ruajtura në cache-in e procesorit pas hedhjes poshtë rezultatit të ekzekutimit spekulativ të operacioneve gjatë përpunimit të operacioneve alternative të shkrimit dhe leximit duke përdorur adresimin indirekt. Kur një operacion leximi pason një operacion shkrimi (p.sh., mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), zhvendosja e adresës së leximit mund të jetë tashmë e njohur për shkak të operacioneve të ngjashme që po kryhen (operacionet e leximit janë kryhet shumë më shpesh dhe leximet mund të kryhen nga cache) dhe procesori mund të kryejë në mënyrë spekulative lexime para shkrimit pa pritur që të llogaritet kompensimi i tërthortë i shkrimit.
Nëse, pas llogaritjes së kompensimit, zbulohet një kryqëzim i zonave të kujtesës për shkrim dhe lexim, procesori thjesht do të heqë rezultatin e lexuar tashmë të marrë në mënyrë spekulative dhe do ta përsërisë këtë operacion. Ky funksion lejon një udhëzim leximi për të hyrë në një vlerë të vjetër në një adresë, ndërkohë që funksionimi i dyqanit nuk është përfunduar ende. Pas hedhjes së një operacioni spekulativ të pasuksesshëm, gjurmët e ekzekutimit të tij mbeten në cache, pas së cilës mund të përdoret një nga metodat për përcaktimin e përmbajtjes së cache-it për ta rikthyer atë bazuar në një analizë të ndryshimeve në kohën e hyrjes në të dhënat e memorizuara dhe të pakapshme.
DobĂ«sia e parĂ« (CVE-2021-35477) Ă«shtĂ« shkaktuar nga njĂ« defekt nĂ« mekanizmin e verifikimit tĂ« programit BPF. PĂ«r t'u mbrojtur kundĂ«r njĂ« sulmi Spectre 4, verifikuesi shton njĂ« udhĂ«zim shtesĂ« pas depozitimeve potencialisht problematike nĂ« memorie qĂ« ruan njĂ« vlerĂ« null pĂ«r tĂ« zhvendosur gjurmĂ«t e operacionit tĂ« mĂ«parshĂ«m. Operacioni i shkrimit null pritej tĂ« ishte shumĂ« i shpejtĂ« dhe tĂ« bllokonte ekzekutimin spekulativ sepse varet vetĂ«m nga njĂ« tregues nĂ« kornizĂ«n e stivĂ«s BPF. Por nĂ« fakt, doli tĂ« ishte e mundur tĂ« krijoheshin kushte nĂ« tĂ« cilat njĂ« udhĂ«zim qĂ« çon nĂ« ekzekutim spekulativ arrin tĂ« ekzekutohet pĂ«rpara operacionit parandalues ââtĂ« dyqanit.
Dobësia e dytë (CVE-2021-3455) është për shkak të faktit se kur verifikuesi BPF identifikon operacione potencialisht të rrezikshme të ruajtjes së memories, ai nuk merr parasysh zonat e pa inicializuara të pirgut BPF, operacioni i parë i shkrimit në të cilin nuk është i mbrojtur. Kjo veçori çon në mundësinë e kryerjes së një operacioni leximi spekulativ, i varur nga një zonë memorie e pa inicializuar, përpara ekzekutimit të udhëzimit të dyqanit. Memoria e re për stivën BPF shpërndahet pa kontrolluar përmbajtjen tashmë në memorien e alokuar dhe ekziston një mënyrë përpara se të ekzekutohet programi BPF për të manipuluar përmbajtjen e rajonit të memories që më pas do të ndahet për grumbullin BPF.
Burimi: opennet.ru
