Di binpergala eBPF de qelsî ku destûrê dide darvekirina kodê di asta kernel Linux de

Di binpergala eBPF de qelsiyek (CVE-2021-4204) hate nas kirin, ku destûrê dide te ku hûn di hundurê kernel Linux-ê de di makîneyek virtual ya taybetî ya bi JIT-ê de rêvebiran bimeşînin, bihêle ku bikarhênerek bêdestûr a herêmî bigihîje mezinbûna îmtiyazê û koda xwe li ser Asta kernel Linux. Pirsgirêk ji kernel Linux 5.8-ê vir ve xuya dibe û neçar dimîne (di nav de berdana 5.16). Rewşa nûvekirinên ku ji bo çareserkirina pirsgirêkê di belavkirinan de têne çêkirin dikarin li ser van rûpelan werin şopandin: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Hat ragihandin ku îstîsmarek xebitandinê hatiye afirandin, ku tê plan kirin ku di 18ê Çile de were weşandin (ji bikarhêner û pêşdebiran re hefteyek dem hatiye dayîn da ku qelsiyê sererast bikin).

Zelalbûn ji ber verastkirina nerast a bernameyên eBPF yên ku ji bo darvekirinê hatine veguheztin pêk tê. Subpergala eBPF fonksiyonên alîkar peyda dike, karanîna rast a ku ji hêla verastkerek taybetî ve tê verast kirin. Hin fonksiyon hewce dikin ku nirxek PTR_TO_MEM wekî arguman derbas bikin, û ji bo pêşîgirtina li zêdebûna tamponê ya muhtemel, divê verastker mezinahiya bîranîna ku bi argumanê ve girêdayî ye zanibe. Ji bo fonksiyonên bpf_ringbuf_submit û bpf_ringbuf_discard, daneyên li ser mezinahiya bîranîna veguhestî ji verastkerê re nehat ragihandin, ku dema ku koda eBPF-ya taybetî hatî sêwirandin dikare were nivîsandin ku deverên bîranînê li derveyî sînorê tamponê were nivîsandin.

Ji bo ku êrîşek pêk bîne, pêdivî ye ku bikarhêner bikaribe bernameya xwe ya BPF-ê bar bike, û gelek belavokên Linux-ê yên vê dawiyê ji hêla xwerû ve vê şiyanê asteng dikin (tevî gihandina bêdestûr a eBPF naha ji hêla xwerû ve di kernelê de qedexe ye, bi berdana 5.16 dest pê dike). Mînakî, lawazbûn dikare di veavakirina xwerû ya di Ubuntu 20.04 LTS de were bikar anîn, lê di hawîrdorên Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 û Fedora 33 de ew tenê xuya dike ku rêvebir destnîşan kiriye. Parametreya kernel.unprivileged_bpf_disabled ji 0 re. Wekî çareyek ji bo astengkirina lawaziyê, hûn dikarin bi fermana "sysctl -w kernel.unprivileged_bpf_disabled=1" pêşî li pêkanîna bernameyên BPF-ê ji hêla bikarhênerên nenas ve bigirin.

Source: opennet.ru

Add a comment