Pagkahuyang sa eBPF subsystem nga nagtugot sa code execution sa Linux kernel level

Usa ka pagkahuyang (CVE-2021-4204) ang giila sa eBPF subsystem, nga nagtugot kanimo sa pagpadagan sa mga handler sulod sa Linux kernel sa usa ka espesyal nga virtual machine nga adunay JIT, nga nagtugot sa usa ka lokal nga dili pribilihiyo nga tiggamit nga makab-ot ang pag-uswag sa pribilehiyo ug ipatuman ang ilang code sa Ang lebel sa kernel sa Linux. Ang problema nagpakita sukad sa Linux kernel 5.8 ug nagpabilin nga wala masulbad (lakip ang pagpagawas sa 5.16). Ang kahimtang sa mga pag-update nga gihimo aron ayohon ang problema sa mga pag-apod-apod mahimong masubay sa kini nga mga panid: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Gipahibalo nga usa ka nagtrabaho nga pagpahimulos ang nahimo, nga giplano nga imantala sa Enero 18 (gihatagan ang mga tiggamit ug mga developer og usa ka semana aron ayohon ang pagkahuyang).

Ang pagkahuyang tungod sa dili husto nga pag-verify sa mga programa sa eBPF nga gipasa alang sa pagpatuman. Ang eBPF subsystem naghatag og auxiliary function, ang husto nga paggamit niini gipamatud-an sa usa ka espesyal nga verifier. Ang ubang mga gimbuhaton nagkinahanglan sa pagpasa sa usa ka PTR_TO_MEM nga bili isip argumento, ug aron mapugngan ang posibleng pag-awas sa buffer, ang verifier kinahanglang mahibalo sa gidak-on sa memorya nga nalangkit sa argumento. Alang sa bpf_ringbuf_submit ug bpf_ringbuf_discard nga mga gimbuhaton, ang datos sa gidak-on sa gibalhin nga memorya wala gitaho ngadto sa verifier, nga mahimong gamiton sa pag-overwrite sa mga lugar sa panumduman lapas sa buffer boundary sa dihang nagpatuman sa espesyal nga gidisenyo nga eBPF code.

Aron mahimo ang usa ka pag-atake, ang tiggamit kinahanglan nga maka-load sa iyang kaugalingon nga programa sa BPF, ug daghang bag-o nga mga pag-apod-apod sa Linux ang nagbabag niini nga abilidad pinaagi sa default (lakip na ang dili pribilihiyo nga pag-access sa eBPF karon gidili pinaagi sa default sa kernel mismo, sugod sa pagpagawas sa 5.16). Pananglitan, ang pagkahuyang mahimong mapahimuslan sa default nga pag-configure sa Ubuntu 20.04 LTS, apan sa mga palibot nga Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 ug Fedora 33 makita ra kung gitakda sa tagdumala. ang kernel.unprivileged_bpf_disabled parameter ngadto sa 0. Isip usa ka workaround alang sa pagbabag sa vulnerability, mahimo nimong mapugngan ang pagpatuman sa mga programa sa BPF sa mga unprivileged nga tiggamit gamit ang command "sysctl -w kernel.unprivileged_bpf_disabled=1".

Source: opennet.ru

Idugang sa usa ka comment