Turvaaugud networkd-dispatcher'is, mis võimaldavad saada root' õigusi

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.

Turvaaugud networkd-dispatcher'is, mis võimaldavad saada root' õigusi


Allikas: opennet.ru
Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster