Funktsiooni io_uring haavatavus võimaldas ilma õigusteta kasutajal juurutada isegi konteinerites

Hiljuti haavatavuse teave on avaldatud (CVE-2022-29582) io_uring asünkroonse I/O liidese juurutamisel, mis sisaldub Linuxi kernelis alates versioonist 5.1, mis võimaldab privilegeerimata kasutajal saada süsteemi juurjuurdepääsuks isegi konteineri ärakasutamise korral.

Tasub seda mainida ütles, et haavatavusest teatati veidi üle 3 kuu tagasi (ligikaudu käesoleva aasta mai alguses), kuid täielik teave ja avalikustamine avaldati alles hiljuti.

Haavatavuse kohta mainitakse, et see tekib juba vabastatud mäluplokile juurdepääsul, avaldub Linuxi tuumades alates 5.10 harust.

Teave haavatavuse CVE-2022-29582 kohta

See haavatavus võimaldab juurdepääsu vabastatud mälule võistlustingimuse tulemusel ajalõppude käsitlemisel funktsioonis io_flush_timeouts(), mise eemaldab ajalõpu kirje loendist ja tühistab selle, kontrollimata sel hetkel ajalõpu loomist ja kustutamist.

Teised on juba esitanud io_uringi värskendatud üldkirjelduse. Nad selgitavad seda tuhat korda paremini kui meie, seega käsitleme alamsüsteemi laiemalt (suurepärase sissejuhatuse saamiseks vaadake seda Grapl Security artiklit ja seda Flatt Security artiklit).

Mis on tähtsam, opkoodi väli määrab, millist tüüpi toimingut teha. Iga seda nõudva "opkoodi" jaoks määrab väli fd faili deskriptori, millel nõutud I/O sooritada. Peaaegu kõigil tavalistel I/O süsteemikõnedel (loe, sendto jne) on samaväärne asünkroonne opkood. Igal väljal võib olenevalt toimingust olla erinev roll.

Pärast SQ-st allalaadimist teisendatakse SQE sisemiseks esituseks, mida kirjeldab struct io_kiocb (tuuma sisendi/väljundi tagasikutse). Neid objekte nimetatakse tavaliselt päringuteks.

struct io_kiocb kasutatakse selle aluseks oleva SQE "käivitamiseks valmis" ekvivalendina, mille puhul mis tahes failideskriptor lahendatakse faili*-de struktureerimiseks, kasutaja mandaadid on lisatud, isikupära (milles tuumad töötavad) jne. .

Kui nõutud toiming on lõpule viidud, kirjutatakse see lõpetamise järjekorda (CQ) kirje, mis vastab SQE-le. Sellist kirjet nimetatakse lõpetamisjärjekorra kirjeks (CQE) ja see sisaldab selliseid välju nagu veakood ja tulemuse väärtus. Kasutajaruumi rakendus saab küsida CQ-st uusi kirjeid, et teha kindlaks, kas saadetud SQE-d on töötlemise lõpetanud ja milline oli nende tulemus.

Mainitakse, et on mõned stsenaariumid, mille puhul on objekti lihtne asendada edenemise kohta. Kuid on kaks piirangut:

  • LT' tuleb määrata ja lähtestada võistlusaknas. See tähendab pärast LT vabastamist, kuid enne LT-s punkti jõudmist, millele enam juurde ei pääseta.
  • LT' saab olla ainult teine ​​struct io_kiocb objekt. Tänu hunniku isolatsioonile, kus hunnikus olevad objektid eraldatakse nende tüübi järgi, on liiga keeruline neid võistlusaknas teist tüüpi objektideks ümber määrata.

Teadlased on ette valmistanud funktsionaalse ärakasutamise mis ei nõua oma tööks kasutajaidentifikaatorite nimeruumide (kasutajate nimeruumide) kaasamist ja võib anda hostile juurjuurdepääsu, kui privilegeerimata kasutaja käivitab exploiti isoleeritud konteineris.

Meie ärakasutamise sihiks on kerneli versioon 5.10.90, versioon, mida Google sel ajal kaugjuhtimisega töötas. Pidime oma kasutust kohandama vastavalt serveri spetsiifilistele spetsifikatsioonidele (4 Skylake Xeoni südamikku @ 2.80 GHz, 16 GiB RAM), kuid mõningate muudatustega peaks iga haavatavat kerneli kasutav masin olema ekspluateeritav.

Exploit töötab ka nsjail keskkonnas isoleeritud Google COS-i (Container Optimized OS) distributsioonis, mis põhineb Chromium OS-il ja mida kasutatakse Google Cloud Platformis Compute Engine'i virtuaalmasinates. Exploit on loodud töötama kerneli harudega vahemikus 5.10 kuni 5.12. Lõpuks tasub seda mainida probleem parandati aprillis värskendustes 5.10.111, 5.15.34 ja 5.17.3.

Lõpuks, kui soovite haavatavuse kohta rohkem teada saada, võite tutvuda tehtud väljaandega Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.