Në nën-sistemin e eBPF, i cili lejon ekzekutimin e trajtuesve brenda bërthamës Linux në një makinë virtuale speciale me JIT, është zbuluar një cenueshmëri (CVE-2021-4204), e cila i jep mundësinë një përdoruesi lokal, të pa privilegjuar, të arrijë përmirësimin e privilegjeve dhe ekzekutimin e kodit të tij në nivelin e bërthamës Linux. Problemi shfaqet duke filluar nga bërthama Linux 5.8 dhe deri tani mbetet i pa zgjidhur (ndikon gjithashtu në versionin 5.16). Gjendja e formimit të përditësimeve me zgjidhje për problemin në distribuimet mund të ndiqet në këto faqe: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Është shpallur krijimi i një eksploiti operacional, i cili planifikohet të publikohet më 18 janar (përdoruesve dhe zhvilluesve u është dhënë një javë për të eliminuar cenueshmërinë).
Vulnerabiliteti shkaktohet nga kontrolli i papërshtatshëm të vlerave që transmetohen për ekzekutimin e programeve eBPF. Nën-sistemi eBPF ofron funksione ndihmëse, saktësinë e përdorimit të të cilave e kontrollon një verifikues i veçantë. Disa funksione kërkojnë kalimin e vlerës PTR_TO_MEM si argument dhe për të parandaluar tejkalimet e mundshme të memories, verifikuesi duhet të dijë madhësinë e memories së lidhur me argumentin. Për funksionet bpf_ringbuf_submit dhe bpf_ringbuf_discard, informacioni mbi madhësinë e memories së transmetuar nuk iu komunikua verifikuesit, që mund të përdorej për të shkruar në zona të memories përtej buffers gjatë ekzekutimit të kodit të veçantë eBPF.
Për të kryer një sulm, përdoruesi duhet të ketë mundësinë të ngarkojë programin e tij BPF, por shumë distribucione të reja Linux e bllokojnë këtë mundësi si standard (përfshirë që qasje e pa privilegjuar në eBPF tani është e ndaluar në vetë bërthamën, duke filluar nga versioni 5.16). Për shembull, një vulnerabilitet mund të shfrytëzohet në konfigurimin standard 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 administratori vendos parametrin kernel.unprivileged_bpf_disabled në vlerën 0. Si një mënyrë për të anashkaluar bllokimin e vulnerabilitetit, mund të ndalohet ekzekutimi i programeve BPF nga përdoruesit e pa privilegjuar me komandën "sysctl -w kernel.unprivileged_bpf_disabled=1".
Burimi: opennet.ru
