Zaznal je napako v zbiralniku smeti Linux, ki bi lahko vodila do stopnjevanja privilegijev 

ranljivost sistema

Pred nekaj dnevi Jann Horn iz ekipe Google Project Zero, ki je predhodno identificiral ranljivosti Spectre in Meltdown, predstavil tehniko za izkoriščanje ranljivosti najdemo v zbiralniku smeti jedra Linux (CVE-2021-4083).

Ranljivost je posledica dirke ko so deskriptorji datotek vtičnice unix očiščeni in potencialno omogoča neprivilegiranemu lokalnemu uporabniku, da izvede vašo kodo na ravni jedra.

Problem je zanimivo zaradi časovnega okna med katerim nastopi stanje dirke ocenjeno kot premajhno ustvariti resnične ranljivosti, vendar je avtor študije pokazal, da lahko tudi sprva skeptične ranljivosti postanejo vir resničnih napadov, če ima ustvarjalec ranljivosti potrebne veščine in čas.

Yann Horn pokazala, kako je s pomočjo filigranskih manipulacij mogoče zmanjšati stanje Dogodek dirke, ki se pojavi pri hkratnem klicu funkcij close() in fget() za v celoti izkoriščeno ranljivost brez uporabe in pridobitev dostopa do že osvobojene podatkovne strukture v jedru.

Pojavi se stanje dirke med postopkom zapiranja deskriptorja datoteke medtem ko istočasno kličete funkciji close() in fget(). Klic close() se lahko izvede, preden se izvede fget(), kar bo zmedlo zbiralca elementov neuporabljen, ker glede na refcount datotečna struktura ne bo imela zunanjih referenc, ampak bo ostala pripeta na deskriptor datoteke, t.j. zbiralec smeti bo domneval, da ima izključni dostop do strukture, vendar dejansko za kratek čas, preostali vnos v tabeli deskriptorjev datotek bo še naprej označeval, da se struktura osvobaja.

Za povečanje verjetnosti vstop v stanje dirke, uporabljenih je bilo več trikov, ki so omogočili povečanje verjetnosti uspeha deleža pri 30 % pri izvajanju specifičnih sistemskih optimizacij. Na primer, da bi povečali čas dostopa do strukture z deskriptorji datotek za nekaj sto nanosekund, so bili podatki odstranjeni iz predpomnilnika procesorja z onesnaženjem predpomnilnika z aktivnostjo na drugem jedru CPU, kar je omogočilo vrnitev strukture iz pomnilnika in ne hitri predpomnilnik procesorja.

Druga pomembna lastnost je bila uporaba prekinitev, ki jih generira strojni časovnik za podaljšanje časa dirke. Čas je bil izbran tako, da bi se upravljalnik prekinitev sprožil med nastopom stanja dirke in za nekaj časa prekinil izvajanje kode. Za dodatno zamudo pri vrnitvi nadzora je epoll ustvaril okoli 50 tisoč vnosov v čakalni vrsti, kar je zahtevalo ponovitev v upravljalniku prekinitev.

Tehnika izkoriščanje ranljivosti je bilo razkrito po 90-dnevnem obdobju nerazkritja. Težava

in je bilo popravljeno v začetku decembra. Popravek je bil vključen v jedro 5.16 in premaknjen tudi v veje LTS jedra in pakete z jedrom, ki so priloženi v distribucijah. Opozoriti je treba, da je bila ranljivost ugotovljena med analizo podobne težave CVE-2021-0920, ki se kaže v zbiralniku smeti pri obdelavi zastave MSG_PEEK.

Ugotovljena je bila še ena ranljivost pred kratkim v jedru Linuxa je bil CVE-2022-0742 da lahko izčrpa razpoložljivi pomnilnik in na daljavo povzroči zavrnitev storitve s pošiljanjem posebej izdelanih paketov icmp6. Težava je povezana s puščanjem pomnilnika, ki se pojavi pri obdelavi sporočil ICMPv6 s tipoma 130 ali 131.

Težava je prisotna že od jedra 5.13 in je bila odpravljena v različicah 5.16.13 in 5.15.27. Težava ni vplivala na stabilne veje Debian, SUSE, Ubuntu LTS (18.04, 20.04) in RHEL, odpravljena je bila v Arch Linuxu.

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


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.