Dalawang bagong kahinaan ang natuklasan sa eBPF subsystem na nagpapahintulot sa mga handler na maisagawa sa loob ng kernel. Linux sa isang espesyal na virtual machine na may JIT. Ang parehong kahinaan ay nagbibigay-daan para sa pagpapatupad ng code na may mga pribilehiyo ng kernel, sa labas ng nakahiwalay na eBPF virtual machine. Ang impormasyon tungkol sa mga isyu ay inilathala ng pangkat ng Zero Day Initiative, na nagpapatakbo ng kompetisyon ng Pwn2Own, na nagpakita ng tatlong pag-atake ngayong taon. Ubuntu Linux, na nagsamantala sa mga dating hindi kilalang kahinaan (hindi naiulat kung ang mga kahinaan sa eBPF ay nauugnay sa mga pag-atakeng ito).
- Ang CVE-2021-3490 ay isang kahinaan na dulot ng kawalan ng out-of-bounds checking para sa mga 32-bit na halaga kapag nagsasagawa ng bitwise AND, OR, at XOR na mga operasyon sa eBPF ALU32. Maaaring samantalahin ng isang attacker ang error na ito upang magbasa at magsulat ng data sa labas ng mga hangganan ng inilaang buffer. Ang isyu sa mga operasyon ng XOR ay umiiral simula sa kernel version 5.7-rc1, at sa mga operasyon ng AND at OR na nagsisimula sa release 5.10-rc1.
- CVE-2021-3489 — Ang kahinaan ay sanhi ng isang error sa implementasyon ng ring buffer at nauugnay sa katotohanan na ang function na bpf_ringbuf_reserve ay hindi sumuri sa posibilidad na ang inilaang laki ng memorya ay maaaring mas maliit kaysa sa aktwal na laki ng ring buffer. Ang isyu ay umiiral simula nang ilabas ang 5.8-rc1.
Ang katayuan ng mga pag-aayos ng kahinaan sa mga distribusyon ay maaaring masubaybayan sa mga pahinang ito: Ubuntu, Debian, RHEL, Fedora, SUSE, Arch). Mayroon ding mga pag-aayos na makukuha bilang mga patch (CVE-2021-3489, CVE-2021-3490). Ang kakayahang magamit ay nakadepende sa pagkakaroon ng access ng user sa system call ng eBPF. Halimbawa, sa default na configuration sa RHEL, ang paggamit ng kahinaan ay nangangailangan na ang user ay magkaroon ng mga pribilehiyo ng CAP_SYS_ADMIN.
Ang isa pang kahinaan sa kernel ay dapat pansinin nang hiwalay. Linux — CVE-2021-32606, na nagpapahintulot sa isang lokal na user na i-escalate ang kanilang mga pribilehiyo para mag-root. Ang isyu ay lumilitaw simula sa kernel. Linux 5.11 at sanhi ng isang race condition sa implementasyon ng CAN ISOTP protocol, na nagpapahintulot sa pagbabago ng mga parameter ng socket binding dahil sa kakulangan ng wastong mga lock na nakatakda sa isotp_setsockopt() function kapag pinoproseso ang CAN_ISOTP_SF_BROADCAST flag.
Matapos isara ang ISOTP socket, mananatiling may bisa ang socket binding ng tatanggap, at maaaring patuloy na gamitin ng tatanggap ang mga istrukturang nauugnay sa socket pagkatapos malaya ang nauugnay na memorya (use-after-free dahil sa isotp_sock structure na ina-access kapag tinatawag ang isotp_rcv(). Sa pamamagitan ng pagmamanipula sa data, posibleng i-override ang sk_error_report() function pointer at isagawa ang custom code sa antas ng kernel.
Pinagmulan: opennet.ru
