Kërkuesit e sigurisë nga kompania Microsoft kanë identifikuar dy vulnerabilitete (CVE-2022-29799, CVE-2022-29800) në shërbimin networkd-dispatcher, të cilat kanë emrin kod Nimbuspwn dhe lejojnë një përdorues të paparagjur të ekzekutojë komanda të rastësishme me të drejta root. Problemi është zgjidhur në versionin networkd-dispatcher 2.2. Informacioni rreth publikimit të përditësimeve nga distribucionet nuk është ende në dispozicion (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).
Networkd-dispatcher përdoret në shumë distribucione Linux, përfshirë Ubuntu, të cilat përdorin procesin background systemd-networkd për të konfiguruar parametra të rrjetit, dhe kryen funksione të ngjashme me NetworkManager-dispatcher, dmth. menaxhon ekzekutimin e skripteve kur ndryshon gjendja e lidhjes së rrjetit, për shembull, përdoret për të nisur VPN pas instalimit të lidhjes kryesore të rrjetit.
Procesi i lidhur me networkd-dispatcher ekzekutohet me të drejta root dhe pranon sinjale për ngjarje përmes autobusit D-Bus. Informacioni mbi ngjarjet lidhur me ndryshimin e gjendjeve të lidhjeve të rrjetit dërgohet nga shërbimi systemd-networkd. Problemi është se përdoruesit e paparagjur mund të krijojnë një ngjarje për një gjendje që nuk ekziston dhe të inicojnë ekzekutimin e skriptit të tyre, i cili do të ekzekutohet me të drejta root.
Systemd-networkd është e dizajnuar për të ekzekutuar vetëm skriptet e përpunuesve sistemikë, të vendosura në katalogun /etc/networkd-dispatcher dhe që nuk janë të aksesueshme për zëvendësim nga përdoruesi, por për shkak të vulnerabilitetit (CVE-2022-29799) në kodin e përpunimit të rrugëve të skedarëve kishte mundësi të daljes jashtë katalogut bazë dhe të ekzekutimit të skripteve të rastësishme. Në veçanti, gjatë formimit të rrugës së skedarit për skriptin, u përdorën vlerat OperationalState dhe AdministrativeState të dërguara përmes D-Bus, ku nuk u krye pastrimi i simbolëve specialë. Sulmuesi mund të gjeneronte një gjendje të tijën, në emrin e së cilës ishin simbolet "../" dhe të drejtonte kërkesën drejt networkd-dispatcher në një katalog tjetër.
Vulnerabiliteti i dytĂ« (CVE-2022-29800) Ă«shtĂ« i lidhur me njĂ« gjendje garĂ« â midis kontrollit tĂ« parametrave tĂ« skriptit (pronarĂ«sia root) dhe ekzekutimit tĂ« tij kishte njĂ« periudhĂ« tĂ« vogĂ«l kohe, e mjaftueshme pĂ«r tĂ« zĂ«vendĂ«suar skedarin dhe pĂ«r tĂ« anashkaluar kontrollin mbi pronarĂ«sinĂ« e skriptit nga pĂ«rdoruesi root. NĂ« pĂ«rveçim, nĂ« networkd-dispatcher mungonte kontrolli mbi lidhjet simbolike, pĂ«rfshirĂ« gjatĂ« ekzekutimit tĂ« skripteve pĂ«rmes thirrjes subprocess.Popen, qĂ« e bĂ«ri shumĂ« mĂ« tĂ« lehtĂ« organizimin e sulmit.
Teknika e shfrytëzimit:
- Krijohet katalogu "/tmp/nimbuspwn" dhe një lidhje simbolike "/tmp/nimbuspwn/poc.d" që tregon në katalogun "/sbin", i cili përdoret për të kaluar kontrollin mbi prani e skedarëve ekzekutues që i përkasin root.
- Për skedarët ekzekutues nga "/sbin" krijohen skedarë me emra të ngjashëm në katalogun "/tmp/nimbuspwn", për shembull, për skedarin "/sbin/vgs" krijohet skedari ekzekutiv "/tmp/nimbuspwn/vgs", që i përket një përdoruesi të paparagjur, në të cilin vendoset kodi që do të ekzekutohet nga sulmuesi.
- Përmes D-Bus, procesi networkd-dispatcher dërgon një sinjal duke specifikuar në OperationalState vlerën "../../../tmp/nimbuspwn/poc". Për dërgimin e sinjalit në hapësirën e emrave "org.freedesktop.network1" u përdor mundësia për t'u lidhur me proceset e veta në systemd-networkd, për shembull, përmes manipulative me gpgv ose epmd, ose mund të shfrytëzohet fakti që systemd-networkd nuk është aktivizuar si parazgjedhje (për shembull, në Linux Mint).
- Pas marrjes së sinjalit, Networkd-dispatcher ndjek ndërtimin e një liste të skedarëve ekzekutues, që i përkasin përdoruesit root dhe janë të aksesueshëm në katalogun "/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d", që në të vërtetë referon në "/sbin".
- Në momentin që lista e skedarëve është marrë, por skripti ende nuk është ekzekutuar, lidhja simbolike ndryshohet nga "/tmp/nimbuspwn/poc.d" në "/tmp/nimbuspwn" dhe networkd-dispatcher do të ekzekutojë me të drejta root skriptin e vendosur nga sulmuesi.

Burimi: opennet.ru
