Varnarleysi í eBPF undirkerfinu sem gerir kóða keyrslu á Linux kjarnastigi

Varnarleysi (CVE-2021-4204) hefur fundist í eBPF undirkerfinu, sem gerir þér kleift að keyra meðhöndlara inni í Linux kjarnanum í sérstakri sýndarvél með JIT, sem gerir staðbundnum forréttindalausum notanda kleift að auka forréttindi og keyra kóðann sinn á Linux kjarnastig. Vandamálið hefur verið að birtast síðan Linux kjarna 5.8 og er enn óleyst (þar á meðal útgáfa 5.16). Hægt er að rekja stöðu uppfærslur sem eru búnar til til að laga vandamálið í dreifingum á þessum síðum: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Tilkynnt hefur verið að búið sé til vinnandi hagnýtingu sem áætlað er að verði birt 18. janúar (notendur og forritarar hafa fengið viku til að laga veikleikann).

Varnarleysið stafar af rangri sannprófun á eBPF forritum sem send eru til framkvæmdar. eBPF undirkerfið býður upp á aukaaðgerðir, rétt notkun þeirra er staðfest af sérstökum sannprófanda. Sumar aðgerðir krefjast þess að PTR_TO_MEM gildi séu send sem rök og til að koma í veg fyrir hugsanlegt flæði yfir biðminni verður sannprófandinn að vita stærð minnisins sem tengist rökseminni. Fyrir aðgerðirnar bpf_ringbuf_submit og bpf_ringbuf_discard voru gögn um stærð flutts minnis ekki tilkynnt til sannprófanda, sem hægt var að nota til að skrifa yfir minnissvæði fyrir utan biðminni þegar sérhannaður eBPF kóða er keyrður.

Til að framkvæma árás verður notandinn að geta hlaðið sitt eigið BPF forrit og margar nýlegar Linux dreifingar loka fyrir þennan möguleika sjálfgefið (þar á meðal óforréttur aðgangur að eBPF er nú bannaður sjálfgefið í kjarnanum sjálfum, frá og með útgáfu 5.16). Til dæmis er hægt að nýta varnarleysið í sjálfgefnum uppsetningu í Ubuntu 20.04 LTS, en í umhverfi Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 og Fedora 33 birtist það aðeins ef stjórnandi hefur stillt færibreytan kernel.unprivileged_bpf_disabled í 0. Til að koma í veg fyrir varnarleysið geturðu komið í veg fyrir að notendur án forréttinda keyri BPF forrit með skipuninni „sysctl -w kernel.unprivileged_bpf_disabled=1“.

Heimild: opennet.ru

Bæta við athugasemd