Në nën-sistemin e eBPF, i cili lejon ekzekutimin e menaxherëve brenda bërthamës së Linux-it në një makinë virtuale të veçantë me JIT, është zbuluar një dobësi (CVE-2021-4204) që u jep mundësinë përdoruesve lokalë të pa privilegjuar të arrijnë rritje privilegjet dhe të ekzekutojnë kodin e tyre në nivelin e bërthamës së Linux-it. Problemi shfaqet që nga bërthama Linux 5.8 dhe për momentin mbetet i pa rregulluar (përfshin edhe lëshimin 5.16). Gjendjen e formimit të përditësimeve për zgjidhjen e problemit në distribucione mund ta ndiqni në këto faqe: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Është deklaruar se është krijuar një eksploatues funksional, i cili planifikohet të publikohet më 18 janar (përdoruesit dhe zhvilluesit iu janë dhënë një javë për të eliminuar dobësinë).
Dobësia shkaktohet nga një verifikim i pasaktë i argumenteve të dërguara për ekzekutim të programeve eBPF. Nën-sistemi eBPF ofron funksione ndihmëse, përdorimi i saktë i të cilave verifikohet nga një verifikues i veçantë. Disa funksione kërkojnë kalimin e vlerës PTR_TO_MEM si argument dhe për të parandaluar mbushjen e mundshme të memorie, verifikuesi duhet të dijë përmasat e memories të lidhur me argumentin. Për funksionet bpf_ringbuf_submit dhe bpf_ringbuf_discard, informacioni mbi përmasat e memories së dërguar nuk i është komunikuar verifikuesit, gjë që mund të përdoret për të shkruar mbi zonat e memories jashtë buffers gjatë ekzekutimit të kodit të posaçëm eBPF.
Për të realizuar një sulm, përdoruesi duhet të ketë mundësinë të ngarkojë programin e tij BPF, dhe shumë distribucione të reja të Linux-it e bllokojnë këtë mundësi si parazgjedhje (përdorimi i pa privilegjuar i eBPF tani është i ndaluar si parazgjedhje edhe në vetë bërthamën, duke filluar nga lëshimi 5.16). Për shembull, dobësia mund të eksploatohet në konfigurimet e parazgjedhura në Ubuntu 20.04 LTS, por në ambientet Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 dhe Fedora 33 shfaqet vetëm nëse administratorit i është caktuar parametri kernel.unprivileged_bpf_disabled në vlerën 0. Si një mënyrë për të bllokuar dobësinë, përdoruesit pa privilegje mund të ndalojnë ekzekutimin e programeve BPF me komandën "sysctl -w kernel.unprivileged_bpf_disabled=1".
Burimi: opennet.ru
