Linux kernel mailan kodea exekutatzeko aukera ematen duen eBPF azpisisteman ahultasuna

Ahultasun bat (CVE-2021-4204) identifikatu da eBPF azpisisteman, eta horrek Linux nukleoaren barruan kudeatzaileak exekutatzeko aukera ematen du JIT-rekin makina birtual berezi batean, pribilegiorik gabeko erabiltzaile lokal bati pribilegioak handitzea eta bere kodea exekutatzeko aukera emanez. Linux kernel maila. Arazoa Linux kernel 5.8tik agertzen da eta konpondu gabe jarraitzen du (5.16 bertsioa barne). Banaketan arazoa konpontzeko sortzen ari diren eguneratzeen egoera orri hauetan jarrai daiteke: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Laneko exploit bat sortu dela jakinarazi dute, urtarrilaren 18an argitaratzea aurreikusita dagoena (erabiltzaile eta garatzaileei astebete eman zaie ahultasuna konpontzeko).

Ahultasuna exekutatzeko transmititutako eBPF programen egiaztapen okerrek eragiten dute. eBPF azpisistemak funtzio osagarriak eskaintzen ditu, eta horien erabilera zuzena egiaztatzaile berezi batek egiaztatzen du. Funtzio batzuek PTR_TO_MEM balio bat argumentu gisa pasa behar dute, eta buffer-a gainezkatze posibleak saihesteko, egiaztatzaileak argumentuarekin lotutako memoriaren tamaina ezagutu behar du. bpf_ringbuf_submit eta bpf_ringbuf_discard funtzioetarako, transferitutako memoriaren tamainari buruzko datuak ez zaizkio egiaztatzaileari jakinarazi, eta memoria-eremuak buffer-en mugatik haratago gainidazteko erabil zitekeen bereziki diseinatutako eBPF kodea exekutatzen denean.

Eraso bat egiteko, erabiltzaileak bere BPF programa kargatu ahal izan behar du, eta azken Linux-en banaketa askok gaitasun hori blokeatzen dute lehenespenez (eBPFrako pribilegiorik gabeko sarbidea barne, orain lehenespenez debekatuta dago nukleoan bertan, 5.16 bertsiotik hasita). Adibidez, ahultasuna Ubuntu 20.04 LTS-en lehenetsitako konfigurazioan ustiatu daiteke, baina Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 eta Fedora 33 inguruneetan administratzaileak ezarri badu bakarrik agertzen da. kernel.unprivileged_bpf_disabled parametroa 0. Ahultasuna blokeatzeko konponbide gisa, pribilegiorik gabeko erabiltzaileek BPF programak exekutatzen saihes ditzakezu "sysctl -w kernel.unprivileged_bpf_disabled=1" komandoarekin.

Iturria: opennet.ru

Gehitu iruzkin berria