io_uringin haavoittuvuus mahdollisti käyttäjän ilman oikeuksia päästä pääkäyttäjäksi jopa säilöissä

äskettäin haavoittuvuustiedot paljastettu (CVE-2022-29582) io_uring asynkronisen I/O-rajapinnan toteutuksessa, joka on sisällytetty Linux-ytimeen versiosta 5.1 lähtien, mikä mahdollistaa etuoikeutettujen käyttäjien tulla järjestelmän pääkäyttäjäksi, vaikka se suorittaa kontin hyväksikäyttöä.

On syytä mainita se sanottu haavoittuvuus raportoitiin hieman yli 3 kuukautta sitten (noin tämän vuoden toukokuun alussa), mutta täydelliset tiedot ja julkistaminen julkaistiin vasta äskettäin.

Haavoittuvuuden osalta mainitaan, että tämä tapahtuu käytettäessä jo vapautettua muistilohkoa, ilmenee Linux-ytimissä alkaen 5.10 haarasta.

Tietoja haavoittuvuudesta CVE-2022-29582

Tämä haavoittuvuus mahdollistaa pääsyn vapautettuun muistiin kilpailutilanteen seurauksena käsiteltäessä aikakatkaisuja io_flush_timeouts()-funktiossa, mikäe poistaa aikakatkaisumerkinnän luettelosta ja peruuttaa sen tarkistamatta aikakatkaisun luomista ja poistamista siinä vaiheessa.

Muut ovat jo toimittaneet päivitetyn yleiskuvauksen io_uringista. He selittävät sen tuhat kertaa paremmin kuin me, joten käsittelemme vain alajärjestelmää laajemmin (katso tästä Grapl Security -artikkelista ja tästä Flatt Security -artikkelista loistava johdanto).

Mikä on tärkeämpää, opcode-kenttä määrittää, minkä tyyppinen toiminto suoritetaan. Jokaiselle sitä vaativalle "opcodelle" fd-kenttä määrittää tiedostokuvaajan, jolle pyydetty I/O suoritetaan. Lähes kaikissa normaaleissa I/O-järjestelmäkutsuissa (read, sendto jne.) on vastaava asynkroninen toimintakoodi. Jokaisella kentällä voi olla eri rooleja toiminnasta riippuen.

Kun SQE on haettu SQ:sta, se muunnetaan sisäiseksi esitykseksi, jota kuvailee struct io_kiocb (ytimen input/output call back). Näitä objekteja kutsutaan yleisesti pyynnöiksi.

struct io_kiocb:tä käytetään vastineena SQE:lle "valmis julkaisuun", johon se perustuu, jolloin mikä tahansa tiedostokuvaaja on ratkaistu struct-tiedostoiksi*, käyttäjän tunnistetiedot on liitetty, persoonallisuus (jossa ytimet toimivat) jne. .

Kun pyydetty toiminto on valmis, se kirjoitetaan valmistumisjonoon (CQ) merkintä, joka vastaa SQE:tä. Tällaista merkintää kutsutaan täydennysjonomerkinnöksi (CQE) ja se sisältää kenttiä, kuten virhekoodin ja tulosarvon. Käyttäjätilasovellus voi kysyä CQ:lta uusia merkintöjä määrittääkseen, ovatko lähetetyt SQE:t käsitelty loppuun ja mikä oli niiden tulos.

Mainitaan, että on olemassa tilanteita, joissa esine on helppo vaihtaa edistymisestä. Mutta on kaksi rajoitusta:

  • LT' on osoitettava ja alustettava kilpailuikkunassa. Eli sen jälkeen, kun LT on vapautettu, mutta ennen kuin saavutetaan kohta LT:ssä, johon ei enää päästä.
  • LT' voi olla vain toinen struct io_kiocb -objekti. Kasan eristyksen vuoksi, jossa kasan kohteet erotetaan niiden tyypin mukaan, on liian vaikeaa määrittää niitä uudelleen erityyppisiksi kohteiksi kilpailuikkunassa.

Tutkijat ovat valmistaneet toiminnallisen hyödyn joka ei vaadi käyttäjätunnisteiden nimiavaruuksien (käyttäjänimiavaruuksien) sisällyttämistä toimintaansa varten ja voi tarjota pääkäyttäjän pääsyn isäntään, kun etuoikeutettu käyttäjä käynnistää hyväksikäytön eristetyssä säilössä.

Hyödynnämme kohteena on ytimen versio 5.10.90, versio, jota Google oli tuolloin etäkäytössä. Meidän piti mukauttaa hyväksikäyttömme palvelimen tiettyjen ominaisuuksien mukaan (4 Skylake Xeon -ydintä @ 2.80 GHz, 16 gigatavua RAM-muistia), mutta joidenkin säätöjen ansiosta minkä tahansa koneen, joka käyttää haavoittuvaa ydintä, pitäisi olla hyödynnettävissä.

Hyökkäys toimii myös nsjail-ympäristössä eristetty Google COS (Container Optimized OS) -jakelussa, joka perustuu Chromium-käyttöjärjestelmään ja jota käytetään Google Cloud Platformissa Compute Engine -virtuaalikoneissa. Hyödyntäminen on suunniteltu toimimaan ytimen 5.10 - 5.12 haarojen kanssa. Lopuksi se kannattaa mainita ongelma korjattiin huhtikuussa päivityksissä 5.10.111, 5.15.34 ja 5.17.3.

Lopuksi, jos olet kiinnostunut tietämään lisää haavoittuvuudesta, voit tutustua tehtyyn julkaisuun Seuraavassa linkissä.


Jätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.