Kerentanan dina subsistem eBPF anu ngamungkinkeun palaksanaan kode dina tingkat kernel Linux

Kerentanan (CVE-2021-4204) parantos diidentipikasi dina subsistem eBPF, anu ngamungkinkeun anjeun ngajalankeun pawang di jero kernel Linux dina mesin virtual khusus sareng JIT, ngamungkinkeun pangguna lokal anu teu boga hak istimewa pikeun ngahontal éskalasi hak husus sareng ngaéksekusi kodena di Tingkat kernel Linux. Masalahna parantos muncul ti saprak Linux kernel 5.8 sareng tetep teu dibenerkeun (kalebet sékrési 5.16). Status apdet anu dihasilkeun pikeun ngalereskeun masalah dina distribusi tiasa dilacak dina halaman ieu: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Parantos diumumkeun yén garapan damel parantos didamel, anu rencanana bakal diterbitkeun dina 18 Januari (pamaké sareng pamekar parantos dibéré saminggu pikeun ngalereskeun kerentanan).

Kerentanan disababkeun ku verifikasi salah sahiji program eBPF anu dikirimkeun pikeun dieksekusi. Subsistem eBPF nyayogikeun fungsi bantu, panggunaan anu leres diverifikasi ku verifier khusus. Sababaraha fungsi merlukeun ngalirkeun hiji nilai PTR_TO_MEM salaku argumen, sarta pikeun nyegah kamungkinan overflows panyangga, verifier kudu nyaho ukuran memori pakait sareng argumen. Pikeun fungsi bpf_ringbuf_submit na bpf_ringbuf_discard, data dina ukuran memori ditransfer teu dilaporkeun ka verifier nu, nu bisa dipaké pikeun nimpa wewengkon memori saluareun wates panyangga nalika executing dirancang husus kode eBPF.

Pikeun ngalaksanakeun serangan, pangguna kedah tiasa ngamuat program BPF na nyalira, sareng seueur distribusi Linux panganyarna ngahalangan kamampuan ieu sacara standar (kaasup aksés anu teu dipikabutuh pikeun eBPF ayeuna dilarang sacara standar dina kernel sorangan, dimimitian ku pelepasan 5.16). Salaku conto, kerentanan tiasa dieksploitasi dina konfigurasi standar dina Ubuntu 20.04 LTS, tapi dina lingkungan Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 sareng Fedora 33 muncul ngan upami administrator parantos nyetél. parameter kernel.unprivileged_bpf_disabled ka 0. Salaku workaround pikeun blocking kerentanan, Anjeun bisa nyegah palaksanaan program BPF ku pamaké unprivileged jeung paréntah "sysctl -w kernel.unprivileged_bpf_disabled = 1".

sumber: opennet.ru

Tambahkeun komentar