V podsistemu eBPF Linux so odkrili ranljivost

Pred kratkim je novica to razkrila je bila ugotovljena ranljivost (CVE-2021-29154) v podsistemu eBPF, ki strOmogoča izvajanje sledenja, analize podsistema in krmilnikov nadzora prometa teče znotraj jedra Linuxa v posebnem navideznem računalniku JIT, ki omogoča lokalnemu uporabniku, da zažene vašo kodo na ravni jedra.

Po mnenju raziskovalcev, ki so prepoznali ranljivost, so lahko razvili delujoč prototip exploita za 86-bitne in 32-bitne sisteme x64, ki jih lahko uporablja neprivilegiran uporabnik.

Hkrati Red Hat ugotavlja, da je resnost težave odvisna od razpoložljivosti sistemskega klica eBPF. za uporabnika. Na primer, v RHEL in večini drugih distribucij Linuxa je privzeto ranljivost mogoče izkoristiti, ko je omogočen BPF JIT in ima uporabnik pravice CAP_SYS_ADMIN.

V jedru Linuxa je bila odkrita težava, ki jo lahko zlorabijo
neprivilegiranim lokalnim uporabnikom, da povečajo privilegije.

Težava je v tem, kako prevajalniki BPF JIT izračunajo za nekatere arhitekture
Odmiki vej pri ustvarjanju strojne kode. To je mogoče zlorabiti
ustvariti nenavadno strojno kodo in jo zagnati v načinu jedra,
kjer je tok nadzora ugrabljen za izvajanje negotove kode.

In to je, da to podrobno opisujejo težavo povzroča napaka, ki nastane pri izračunu odmika navodil za razvejanje med prevajalnikom JIT, ki generira strojno kodo.

Zlasti je omenjeno, da se pri ustvarjanju navodil za vejo ne upošteva, da se lahko premik po prehodu skozi fazo optimizacije spremeni, zato lahko to napako uporabimo za generiranje nepravilne strojne kode in njeno izvajanje na ravni. .

Treba je opozoriti, da To ni edina ranljivost v podsistemu eBPF, ki je znana v zadnjih letih, konec marca sta bili v jedru ugotovljeni še dve ranljivosti (CVE-2020-27170, CVE-2020-27171), ki omogočajo uporabo eBPF, da lahko obidejo zaščito pred ranljivostmi razreda Spectre, ki omogočajo določanje vsebine pomnilnika jedra in zaradi česar se ustvarijo pogoji za špekulativno izvajanje nekaterih operacij.

Napad Spectre zahteva prisotnost določenega zaporedja ukazov v privilegirani kodi, kar vodi do špekulativnega izvajanja navodil. V eBPF je bilo najdenih več načinov ustvariti taka navodila z manipulacijami s programi BPF, ki se pošiljajo za njihovo izvajanje.

  • Ranljivost CVE-2020-27170 povzročajo manipulacije s kazalci v pregledovalniku BPF, zaradi česar špekulativne operacije dostopajo do območja zunaj vmesnega pomnilnika.
  • Ranljivost CVE-2020-27171 je povezana s celoštevilno napako podtoka pri delu s kazalci, kar vodi do špekulativnega dostopa do podatkov, ki niso v medpomnilniku.

Te težave so bile že odpravljene v različicah jedra 5.11.8, 5.10.25, 5.4.107, 4.19.182 in 4.14.227 in so bile vključene v posodobitve jedra za večino distribucij Linuxa. Raziskovalci so pripravili prototip izkoriščanja, ki neprivilegiranemu uporabniku omogoča pridobivanje podatkov iz pomnilnika jedra.

Kar zadeva eno od rešitev, ki , ki ga predlaga Red Hat:

Blažitev:

Ta težava privzeto ne vpliva na večino sistemov. Skrbnik bi moral omogočiti vpliv na BPF JIT.

Takoj ga lahko onemogočite z ukazom:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Lahko pa ga onemogočite za vse nadaljnje zagone sistema, tako da nastavite vrednost v /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

Končno če vas zanima več o tem o tej ranljivosti lahko podrobnosti preverite v naslednjo povezavo.

Omeniti velja, da težava traja do različice 5.11.12 (vključno) in v večini distribucij še ni rešena, čeprav je popravek že na mestu. na voljo v obliki obliža.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.