Vulnerabilitete në networkd-dispatcher, që lejojnë marrjen e të drejtave root

Studiuesit e sigurisë nga Microsoft kanë zbuluar dy dobësi (CVE-2022-29799, CVE-2022-29800) në shërbimin networkd-dispatcher, të quajtura me emrin e koduar Nimbuspwn, të cilat i lejojnë një përdoruesi pa privilegje të ekzekutojë komanda arbitrare me të drejta root. Problemi është rregulluar në versionin networkd-dispatcher 2.2. Ende nuk ka informacione për publikimin e përditësimeve nga shpërndarjet (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcher përdoret në shumë shpërndarje Linux, përfshirë Ubuntu, që përdorin procesin në sfond systemd-networkd për konfigurimin e parametrave të rrjetit, dhe kryen funksione të ngjashme me NetworkManager-dispatcher, pra merret me nisjen e skripteve kur ndryshon gjendja e lidhjes së rrjetit; për shembull, përdoret për nisjen VPN pas vendosjes së lidhjes kryesore të rrjetit.

Procesi në sfond i lidhur me networkd-dispatcher ekzekutohet me të drejta root dhe merr sinjale për ngjarjet përmes bus-it D-Bus. Informacioni për ngjarjet që lidhen me ndryshimin e gjendjes së lidhjeve të rrjetit dërgohet nga shërbimi systemd-networkd. Problemi qëndron në faktin se përdoruesit pa privilegje mund të krijojnë një ngjarje për një gjendje që nuk ekziston dhe të nisin ekzekutimin e skriptit të tyre, i cili do të ekzekutohet me të drejta root.

Systemd-networkd është projektuar të nisë vetëm skriptet përpunuese të sistemit, të vendosura në direktorinë /etc/networkd-dispatcher dhe të paarritshme për zëvendësim nga përdoruesi, por për shkak të dobësisë (CVE-2022-29799) në kodin e përpunimit të shtegut të skedarit, ishte e mundur të dilje jashtë drejtorisë bazë dhe të ekzekutoje skripte arbitrare. Konkretisht, gjatë formimit të shtegut të skedarit drejt skriptit, përdoreshin vlerat OperationalState dhe AdministrativeState të kaluara përmes D-Bus, te të cilat nuk kryhej pastrimi i simboleve speciale. Sulmuesi mund të gjeneronte gjendjen e vet, në emrin e së cilës përfshiheshin simbolet «../», dhe ta ridrejtonte aksesin e networkd-dispatcher drejt një drejtorie tjetër.

DobĂ«sia e dytĂ« (CVE-2022-29800) lidhet me njĂ« race condition — midis kontrollit tĂ« parametrave tĂ« skriptit (pronĂ«sia nga root) dhe nisjes sĂ« tij ekzistonte njĂ« interval i shkurtĂ«r kohe, i mjaftueshĂ«m pĂ«r tĂ« zĂ«vendĂ«suar skedarin dhe pĂ«r tĂ« anashkaluar kontrollin e pronĂ«sisĂ« sĂ« skriptit nga pĂ«rdoruesi root. PĂ«r mĂ« tepĂ«r, nĂ« networkd-dispatcher mungonte kontrolli i lidhjeve simbolike, pĂ«rfshirĂ« edhe gjatĂ« nisjes sĂ« skripteve pĂ«rmes thirrjes subprocess.Popen, gjĂ« qĂ« e lehtĂ«sonte ndjeshĂ«m organizimin e sulmit.

Teknika e shfrytëzimit:

  • Krijohen direktoria "/tmp/nimbuspwn" dhe lidhja simbolike "/tmp/nimbuspwn/poc.d", e cila tregon te direktoria "/sbin" dhe pĂ«rdoret pĂ«r tĂ« kaluar kontrollin pĂ«r praninĂ« e skedarĂ«ve tĂ« ekzekutueshĂ«m nĂ« pronĂ«si tĂ« root.
  • PĂ«r skedarĂ«t e ekzekutueshĂ«m nga "/sbin" krijohen skedarĂ« me tĂ« njĂ«jtin emĂ«r nĂ« direktorinĂ« "/tmp/nimbuspwn"; pĂ«r shembull, pĂ«r skedarin "/sbin/vgs" krijohet skedari i ekzekutueshĂ«m "/tmp/nimbuspwn/vgs", nĂ« pronĂ«si tĂ« njĂ« pĂ«rdoruesi pa privilegje, ku vendoset kodi qĂ« sulmuesi dĂ«shiron tĂ« ekzekutojĂ«.
  • Procesit D-Bus networkd-dispatcher i dĂ«rgohet njĂ« sinjal me vlerĂ«n "../../../tmp/nimbuspwn/poc" tĂ« specifikuar nĂ« OperationalState. PĂ«r dĂ«rgimin e sinjalit nĂ« hapĂ«sirĂ«n e emrave "org.freedesktop.network1" u pĂ«rdor mundĂ«sia pĂ«r tĂ« lidhur trajtuesit e vet me systemd-networkd, pĂ«r shembull pĂ«rmes manipulimeve me gpgv ose epmd, ose mund tĂ« shfrytĂ«zohet fakti qĂ« systemd-networkd nuk Ă«shtĂ« i nisur si parazgjedhje (pĂ«r shembull, nĂ« Linux Mint).
  • Pas marrjes sĂ« sinjalit, Networkd-dispatcher ndĂ«rton listĂ«n e skedarĂ«ve tĂ« ekzekutueshĂ«m nĂ« pronĂ«si tĂ« pĂ«rdoruesit root dhe tĂ« disponueshĂ«m nĂ« direktorinĂ« "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", e cila nĂ« fakt referon te "/sbin".
  • NĂ« momentin kur lista e skedarĂ«ve Ă«shtĂ« marrĂ«, por skripti ende nuk Ă«shtĂ« nisur, lidhja simbolike ridrejtohet nga "/tmp/nimbuspwn/poc.d" te "/tmp/nimbuspwn", dhe networkd-dispatcher do tĂ« ekzekutojĂ« me tĂ« drejta root skriptin e vendosur nga sulmuesi.

Vulnerabilitete në networkd-dispatcher, që lejojnë marrjen e të drejtave root


Burimi: opennet.ru
Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster