Ievainojamība io_uring ļāva lietotājam bez atļaujām kļūt par root pat konteineros

Nesen izpausta informācija par ievainojamību (CVE-2022-29582) io_uring asinhronās ievades/izvades saskarnes ieviešanā, kas iekļauta Linux kodolā kopš versijas 5.1, kas ļauj nepievilinātam lietotājam kļūt par sistēmas root, pat izpildot konteinera izmantošanu.

Ir vērts to pieminēt Minētā ievainojamība tika ziņots nedaudz vairāk nekā pirms 3 mēnešiem (aptuveni šā gada maija sākumā), bet visa informācija un izpaušana tika publiskota tikai nesen.

Attiecībā uz ievainojamību tiek minēts, ka šis rodas, piekļūstot jau atbrīvotam atmiņas blokam, izpaužas Linux kodolos, sākot ar 5.10 filiāli.

Par ievainojamību CVE-2022-29582

Šī ievainojamība ļauj piekļūt atbrīvotajai atmiņai sacensību nosacījuma rezultātā, apstrādājot taimautus funkcijā io_flush_timeouts(), kase noņem taimauta ierakstu no saraksta un atceļ to, nepārbaudot taimauta izveidi un dzēšanu šajā brīdī.

Atjauninātu vispārīgu io_uring aprakstu jau ir snieguši citi. Viņi to izskaidro tūkstoš reižu labāk nekā mēs, tāpēc mēs tikai aptversim apakšsistēmu plašāk (skatiet šo Grapl Security rakstu un šo Flatt Security rakstu, lai iegūtu lielisku ievadu).

Kas ir svarīgāk, opkoda lauks nosaka, kāda veida darbība jāveic. Katram "operācijas kodam", kuram tas ir nepieciešams, laukā fd ir norādīts faila deskriptors, kuram jāveic pieprasītā ievade/izvade. Gandrīz visiem parastajiem I/O sistēmas izsaukumiem (lasīt, sūtīt utt.) ir līdzvērtīgs asinhronais opkods. Katrs lauks var uzņemties dažādas lomas atkarībā no darbības.

Kad SQE ir izgūts no SQ, tas tiek pārveidots par iekšējo attēlojumu, ko apraksta struct io_kiocb (kodola ievades/izvades atzvans). Šos objektus parasti sauc par pieprasījumiem.

struct io_kiocb tiek izmantots kā ekvivalents SQE "gatavs palaišanai", uz kura tas ir balstīts, kur jebkurš faila deskriptors tiek atrisināts, lai izveidotu failu*s, ir pievienoti lietotāja akreditācijas dati, personība (kurā darbosies kodoli) utt. .

Kad pieprasītā darbība ir pabeigta, tā tiek ierakstīta pabeigšanas rindā (CQ) ieraksts, kas atbilst SQE. Šādu ierakstu sauc par pabeigšanas rindas ierakstu (CQE), un tajā ir tādi lauki kā kļūdas kods un rezultāta vērtība. Lietotāja vietas lietojumprogramma var aptaujāt CQ, lai atrastu jaunus ierakstus, lai noteiktu, vai nosūtītie SQE ir pabeiguši apstrādi un kāds bija to rezultāts.

Tiek minēts, ka ir daži scenāriji, kuros objektu ir viegli nomainīt par progresu. Bet ir divi ierobežojumi:

  • LT' ir jāpiešķir un jāinicializē sacensību logā. Tas ir, pēc LT izlaišanas, bet pirms LT punkta sasniegšanas, kuram vairs nevar piekļūt.
  • LT' var būt tikai cits struct io_kiocb objekts. Kaudzes izolācijas dēļ, kad objekti kaudzē ir atdalīti pēc to veida, ir pārāk grūti tos piešķirt cita veida objektiem sacensību logā.

Pētnieki ir sagatavojuši funkcionālu izmantošanu kuras darbībai nav jāiekļauj lietotāja identifikatoru nosaukumvietas (lietotāju nosaukumvietas), un tā var nodrošināt root piekļuvi resursdatoram, kad nepievilcīgs lietotājs palaiž ekspluatāciju izolētā konteinerā.

Mūsu izmantošanas mērķis ir kodola versija 5.10.90, versija Google tajā laikā darbojās attālināti. Mums bija jāpielāgo mūsu ekspluatācija konkrētajām servera specifikācijām (4 Skylake Xeon kodoli @ 2.80 GHz, 16 GiB RAM), taču, veicot dažus pielāgojumus, jebkurai mašīnai, kurā darbojas neaizsargāts kodols, vajadzētu būt izmantojamai.

Ekspluatācija darbojas arī nsjail vidē izolēts Google COS (Container Optimized OS) izplatīšanā, kura pamatā ir Chromium OS, un tiek izmantots Google mākoņa platformā Compute Engine virtuālajās mašīnās. Ekspluatācija ir paredzēta darbam ar kodola zariem no 5.10 līdz 5.12. Visbeidzot, ir vērts to pieminēt problēma, kas tika novērsta aprīlī atjauninājumos 5.10.111, 5.15.34 un 5.17.3.

Visbeidzot, ja vēlaties uzzināt vairāk par ievainojamību, varat iepazīties ar publicēto publikāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.