Microsofti turva-uuringute meeskond tuvastas kaks haavatavust (CVE-2022-29799, CVE-2022-29800) teenuses networkd-dispatcher, koodnimetusega Nimbuspwn, mis vÔimaldavad mitteprivileegitud kasutajatel tÀita juhuslikke kÀske root-Ôigustega. Probleem on lahendatud networkd-dispatcher 2.2 versioonis. Teavet vÀrskenduste vabastamise kohta jaoturite (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux) jaoks pole veel saadaval.
Networkd-dispatcher'i kasutatakse paljudes Linuxi distributsioonides, sealhulgas Ubuntu-s, mis kasutavad vĂ”rgukonfiguratsiooni mÀÀramiseks taustaprotsessi systemd-networkd, ning see tĂ€idab funktsioone, mis on sarnased NetworkManager-dispatcher'iga, st kĂ€ivitab skripte, kui vĂ”rguĂŒhenduse olek muutub, nĂ€iteks kasutatakse seda kĂ€ivitamiseks VPN pĂ€rast pĂ”hivĂ”rguĂŒhenduse loomist.
networkd-dispatcher'iga seotud taustaprotsess töötab root'i Ă”igustes ja vĂ”tab sĂŒndmuste signaale vastu D-Bus'i kaudu. Teave, mis on seotud vĂ”rguĂŒhenduste olekumuutuste sĂŒndmustega, saadetakse teenuse systemd-networkd poolt. Probleem on selles, et mitteprivilegeeritud kasutajad saavad genereerida sĂŒndmuse mitteeksisteerivast olekust ja algatada oma skripti kĂ€ivitamise, mis tĂ€idetakse root'i Ă”igustes.
Systemd-networkd on ette nĂ€htud ainult sĂŒsteemselt haldusskripti kĂ€ivitamiseks, mis asuvad kataloogis /etc/networkd-dispatcher ja ei ole kasutaja poolt asendatavad, kuid haavatavuse (CVE-2022-29799) tĂ”ttu failitee töötlemise koodis oli vĂ”imalik vĂ€ljuda pĂ”hikataloogist ja kĂ€ivitada juhuslikke skripte. EelkĂ”ige kirjutati skripti failitee genereerimisel vastuvĂ”etud D-Bus'i vÀÀrtusi OperationalState ja AdministrativeState, kus eriliste mĂ€rkide puhastamist ei toimunud. RĂŒndaja sai genereerida oma oleku, mille nimes olid sĂŒmbolid â../â ja suunata networkd-dispatcher'i pĂ€ringud teise katalooge.
Teine haavatavus (CVE-2022-29800) on seotud vĂ”idusĂ”iduga â kontrollimise ja skripti kĂ€ivitamise vahel (root-pertinentsi kontroll) oli aeg, mis oli piisav faili asendamiseks ja skripti kaalumiseks, et kĂ”rvaldada kontroll, kas see kuulub root-kasutajale. Lisaks puudus networkd-dispatcheris sĂŒmboolsete linkide kontroll, sealhulgas skriptide kĂ€ivitamisel subprocess.Popen kaudu, mis lihtsustas rĂŒnnaku korraldamist.
Eksploiteerimise tehnika:
- Loodud on kataloog "/tmp/nimbuspwn" ja sĂŒmboolne link "/tmp/nimbuspwn/poc.d", mis viitab kataloogile "/sbin", mida kasutatakse root-iga seotud kĂ€ivitatavate failide kontrolli lĂ€bimiseks.
- KĂ€ivitatavate failide jaoks kataloogist "/sbin" luuakse sama nimega failid kataloogis "/tmp/nimbuspwn", nĂ€iteks faili "/sbin/vgs" jaoks luuakse kĂ€ivitatav fail "/tmp/nimbuspwn/vgs", mis kuulub mitteprivileeritud kasutajale, kuhu asetatakse kood, mida rĂŒndaja soovib kĂ€ivitada.
- D-Bus protsessi kaudu saadetakse networkd-dispatcher'ile signaal, mis nĂ€itab OperationalState vÀÀrtust «../../../tmp/nimbuspwn/poc». Signaali saatmiseks âorg.freedesktop.network1â nimes, kasutati vĂ”imalust ĂŒhendada oma töötlejat systemd-networkd'iga, nĂ€iteks manipuleerides gpgv vĂ”i epmd'iga, vĂ”i vĂ”ib kasutada seda, et systemd-networkd ei kĂ€ivitu vaikimisi (nĂ€iteks Linux Mint'i puhul).
- PÀrast signaali vastuvÔtmist koostab Networkd-dispatcher loendi kÀivitatavatest failidest, mis kuuluvad root-kasutajale ja on kergesti ligipÀÀsetavad kataloogis «/etc/networkd-dispatcher/../../../tmp/nimbuspwn/poc.d», mis viitab tegelikult «/sbin».
- Hetkel, kui failide loend on saadud, kuid skripti veel ei ole kĂ€ivitatud, suunatakse sĂŒmboolne link «/tmp/nimbuspwn/poc.d» aadressile «/tmp/nimbuspwn» ning networkd-dispatcher kĂ€ivitab root-Ă”igustes skripti, mille on asetanud rĂŒndaja.

Allikas: opennet.ru
