Kerentanan ing eBPF sing bisa ngliwati perlindungan serangan Spectre 4

Loro kerentanan wis diidentifikasi ing kernel Linux sing ngidini subsistem eBPF digunakake kanggo nglindhungi proteksi marang serangan Spectre v4 (SSB, Spekulatif Toko Bypass). Nggunakake program BPF sing ora duwe hak istimewa, panyerang bisa nggawe kahanan kanggo eksekusi spekulatif operasi tartamtu lan nemtokake isi area memori kernel sing sewenang-wenang. Penyelenggara subsistem eBPF ing kernel nampa akses menyang eksploitasi prototipe sing nuduhake kemampuan kanggo nindakake serangan ing praktik. Masalah wis didandani kanthi bentuk patch (1, 2), sing bakal kalebu ing nganyari kernel Linux sabanjure. Nganyari ing kit distribusi durung digawe (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Cara serangan Spectre 4 adhedhasar mulihake data sing disimpen ing cache prosesor sawise ngilangi asil eksekusi operasi spekulatif nalika ngolah operasi nulis lan maca gantian nggunakake alamat ora langsung. Nalika operasi maca nderek operasi nulis (contone, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), offset alamat sing diwaca bisa uga wis dingerteni amarga operasi sing padha ditindakake (operasi maca yaiku dileksanakake luwih kerep lan maca bisa dileksanakake saka cache) lan prosesor bisa speculatively nindakake maca sadurunge nulis tanpa ngenteni kanggo ngimbangi indirection nulis kang bakal diwilang.

Yen, sawise ngetung offset, persimpangan area memori kanggo nulis lan maca dideteksi, prosesor mung bakal ngilangi asil maca sing wis dipikolehi kanthi spekulatif lan mbaleni operasi kasebut. Fitur iki ngidini instruksi diwaca kanggo ngakses nilai lawas ing sawetara alamat nalika operasi toko durung rampung. Sawise ngilangi operasi spekulatif sing ora kasil, jejak eksekusi tetep ana ing cache, banjur salah sawijining cara kanggo nemtokake isi cache bisa digunakake kanggo njupuk kasebut adhedhasar analisis owah-owahan wektu akses menyang data cache lan data sing ora disimpen.

Kerentanan pisanan (CVE-2021-35477) disebabake cacat ing mekanisme verifikasi program BPF. Kanggo nglindhungi saka serangan Spectre 4, verifier nambah instruksi tambahan sawise nyimpen potensial masalah ing memori sing nyimpen nilai null kanggo ngganti jejak operasi sadurunge. Null operasi nulis iki samesthine banget cepet lan mblokir eksekusi spekulatif amarga mung gumantung ing pitunjuk kanggo pigura tumpukan BPF. Nanging nyatane, bisa nggawe kahanan ing ngendi instruksi sing mimpin kanggo eksekusi spekulatif bisa ditindakake sadurunge operasi toko preemptive.

Kerentanan kapindho (CVE-2021-3455) amarga kasunyatan sing nalika verifikasi BPF ngenali operasi nyimpen memori potensial mbebayani, ora njupuk menyang akun wilayah uninitialized tumpukan BPF, operasi nulis pisanan sing ora dilindhungi. Fitur iki ndadΓ©kakΓ© kanggo kamungkinan nindakake operasi maca spekulatif, gumantung ing area memori uninitialized, sadurunge nglakokakΓ© instruksi nyimpen. Memori anyar kanggo tumpukan BPF diparengake tanpa mriksa isi sing wis ana ing memori sing diparengake, lan ana cara sadurunge program BPF mlaku kanggo ngapusi isi wilayah memori sing banjur diparengake kanggo tumpukan BPF.

Source: opennet.ru

Add a comment