Kerentanan dina eBPF anu tiasa ngalangkungan panyalindungan serangan Specter 4

Dua kerentanan parantos diidentifikasi dina kernel Linux anu ngamungkinkeun subsistem eBPF dianggo pikeun ngaleungitkeun panyalindungan ngalawan serangan Specter v4 (SSB, Spekulatif Toko Bypass). Ngagunakeun program BPF unprivileged, panyerang bisa nyieun kaayaan pikeun palaksanaan spekulatif operasi tangtu jeung nangtukeun eusi wewengkon sawenang memori kernel. Para pangropéa subsistem eBPF dina kernel nampi aksés kana prototipe eksploitasi anu nunjukkeun kamampuan pikeun ngalaksanakeun serangan dina praktékna. Masalahna parantos dibereskeun dina bentuk patch (1, 2), anu bakal dilebetkeun kana apdet kernel Linux salajengna. Pembaruan dina kit distribusi henteu acan didamel (Debian, RHEL, SUSE, Arch, Fedora, Ubuntu).

Metodeu serangan Spectre 4 dumasar kana malikkeun data anu disimpen dina cache prosesor saatos ngaleungitkeun hasil palaksanaan operasi spekulatif nalika ngolah operasi nulis sareng maca bolak nganggo alamat teu langsung. Lamun operasi baca nuturkeun operasi nulis (misalna, mov [rbx + rcx], 0x0; mov rax, [rdx + rsi]), offset alamat baca bisa geus dipikawanoh alatan operasi sarupa anu dipigawé (operasi baca dipigawé leuwih remen jeung maca bisa dipigawé ti cache) jeung processor spekulatif bisa ngalakukeun maca saméméh nulis tanpa ngantosan indirection offset nulis urang diitung.

Upami saatos ngitung offset, simpang tina daérah mémori pikeun nyerat sareng maca dideteksi, prosésor ngan saukur bakal miceun hasil bacaan anu sacara spekulatif dicandak sareng ngulang operasi ieu. Fitur ieu ngamungkinkeun instruksi dibaca pikeun ngakses nilai heubeul di sababaraha alamat bari operasi toko teu acan réngsé. Saatos miceun operasi spekulatif anu gagal, jejak palaksanaanna tetep aya dina cache, saatos éta salah sahiji metodeu pikeun nangtukeun eusi cache tiasa dianggo pikeun nyandak éta dumasar kana analisa parobahan dina waktos aksés kana data cache sareng henteu cache.

Kerentanan munggaran (CVE-2021-35477) disababkeun ku cacad dina mékanisme verifikasi program BPF. Pikeun ngajaga ngalawan serangan Spectre 4, verifier nambihkeun instruksi tambahan saatos toko anu berpotensi masalah dina mémori anu nyimpen nilai nol pikeun ngagentos ngambah operasi saméméhna. Null nulis operasi ieu diperkirakeun jadi pisan gancang sarta meungpeuk palaksanaan spekulatif sabab ngan gumantung kana pointer ka pigura tumpukan BPF. Tapi kanyataanna, tétéla tiasa nyiptakeun kaayaan dimana instruksi anu ngarah ka palaksanaan spekulatif tiasa dieksekusi sateuacan operasi toko preemptive.

The kerentanan kadua (CVE-2021-3455) alatan kanyataan yén nalika BPF verifier ngaidentipikasi memori berpotensi bahaya ngahemat operasi, teu tumut kana akun wewengkon uninitialized tumpukan BPF, operasi nulis munggaran nu teu ditangtayungan. Fitur ieu ngakibatkeun kamungkinan ngajalankeun operasi maca spekulatif, gumantung kana wewengkon memori uninitialized, saméméh executing instruksi toko. Mémori anyar pikeun tumpukan BPF dialokasikeun tanpa pariksa eusi anu parantos aya dina mémori anu dialokasikeun, sareng aya cara sateuacan program BPF ngajalankeun pikeun ngamanipulasi eusi daérah mémori anu teras bakal dialokasikeun pikeun tumpukan BPF.

sumber: opennet.ru

Tambahkeun komentar