Networkd-dispatcherin haavoittuvuudet, jotka sallivat pääkäyttäjän käytön

Microsoftin tietoturvatutkijat ovat havainneet kaksi haavoittuvuutta (CVE-2022-29799, CVE-2022-29800) networkd-dispatcher-palvelussa, koodinimeltään Nimbuspwn, joiden avulla etuoikeutetut käyttäjät voivat suorittaa mielivaltaisia ​​komentoja pääkäyttäjän oikeuksin. Ongelma on korjattu Networkd-dispatcher 2.2 -julkaisussa. Jakelukohtaisten päivitysten julkaisemisesta ei ole vielä tietoa (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcheria käytetään monissa Linux-jakeluissa, mukaan lukien Ubuntu, joka käyttää taustaprosessia systemd-networkd verkkoparametrien määrittämiseen ja suorittaa NetworkManager-dispatcherin kaltaisia ​​toimintoja, ts. käynnistää komentosarjoja verkkoyhteyden tilan muuttuessa, esimerkiksi sitä käytetään VPN:n käynnistämiseen pääverkkoyhteyden muodostamisen jälkeen.

Networkd-dispatcheriin liittyvä taustaprosessi toimii pääkäyttäjänä ja vastaanottaa tapahtumasignaaleja D-väylän kautta. Tietoa verkkoyhteyksien tilan muutoksiin liittyvistä tapahtumista lähettää systemd-networkd-palvelu. Ongelmana on, että etuoikeutetut käyttäjät voivat luoda olemattoman tilatapahtuman ja käynnistää komentosarjansa suoritettavan pääkäyttäjänä.

Systemd-networkd on suunniteltu suorittamaan vain järjestelmän käsittelijän komentosarjoja, jotka sijaitsevat /etc/networkd-dispatcher-hakemistossa ja joita ei voi vaihtaa käyttäjälle, mutta tiedostopolun käsittelykoodin haavoittuvuuden (CVE-2022-29799) vuoksi siellä oli mahdollisuus rajojen ulkopuoliseen perushakemistoon ja mielivaltaisten komentosarjojen käynnistämiseen. Erityisesti skriptin tiedostopolun muodostamisessa käytettiin D-Busin kautta lähetettyjä OperationalState- ja AdministrativeState-arvoja, joissa erikoismerkkejä ei tyhjennetty. Hyökkääjä saattoi luoda oman tilansa, jonka nimi sisälsi merkit "../" ja ohjata networkd-dispatcher-kutsun toiseen hakemistoon.

Toinen haavoittuvuus (CVE-2022-29800) liittyy kilpailutilanteeseen - komentosarjan parametrien (jotka kuuluvat juurille) tarkistamisen ja sen suorittamisen välillä kului lyhyt aika, joka riitti tiedoston vaihtamiseen ja tarkastuksen ohittamiseen. komentosarja kuuluu pääkäyttäjälle. Lisäksi networkd-dispatcher ei tarkistanut symbolisia linkkejä, mukaan lukien ajettaessa skriptejä aliprosessin läpi.Popen-puhelu, joka yksinkertaisti merkittävästi hyökkäyksen järjestämistä.

Toimintatekniikka:

  • Hakemisto "/tmp/nimbuspwn" ja symbolinen linkki "/tmp/nimbuspwn/poc.d" luodaan osoittaen hakemistoon "/sbin", jota käytetään tarkistamaan, onko pääkäyttäjän omistamia suoritettavia tiedostoja.
  • Suoritettaville tiedostoille "/sbin" -hakemistosta luodaan samannimiset tiedostot "/tmp/nimbuspwn" -hakemistoon, esimerkiksi tiedostolle "/sbin/vgs" on suoritettava tiedosto "/tmp/nimbuspwn/vgs". luotu, etuoikeutettoman käyttäjän omistama, johon sijoitetaan koodi, jonka hyökkääjä haluaa ajaa.
  • Signaali lähetetään D-Bus-väylän kautta networkd-dispatcher-prosessille, joka ilmaisee arvon "../../../tmp/nimbuspwn/poc" OperationalState-tilassa. Signaalin lähettämiseen nimiavaruudessa “org.freedesktop.network1” käytettiin kykyä yhdistää sen käsittelijät systemd-networkd:hen esimerkiksi manipuloimalla gpgv:tä tai epmd:tä, tai voit hyödyntää sitä, että systemd-networkd ei ole oletuksena käynnissä (esimerkiksi Linux Mintissa).
  • Vastaanotettuaan signaalin Networkd-dispatcher rakentaa luettelon pääkäyttäjän omistamista suoritettavista tiedostoista, jotka ovat saatavilla hakemistossa "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", joka itse asiassa linkittää "/sbin".
  • Sillä hetkellä, kun tiedostoluettelo vastaanotetaan, mutta komentosarjaa ei ole vielä käynnistetty, symbolinen linkki ohjataan osoitteesta "/tmp/nimbuspwn/poc.d" osoitteeseen "/tmp/nimbuspwn" ja networkd-dispatcher käynnistää komentosarja, jota isännöi hyökkääjä pääkäyttäjän oikeuksin.

Networkd-dispatcherin haavoittuvuudet, jotka sallivat pääkäyttäjän käytön


Lähde: opennet.ru

Lisää kommentti