Vulnerabilități în networkd-dispatcher, care permit obținerea drepturilor de root.

Cercetătorii de securitate de la Microsoft au descoperit două vulnerabilități (CVE-2022-29799, CVE-2022-29800) în serviciul networkd-dispatcher, numite Nimbuspwn, care permit unui utilizator fără privilegii să execute comenzi arbitrare cu drepturi de root. Problema a fost rezolvată în versiunea networkd-dispatcher 2.2. Nu există informații despre publicarea actualizărilor de către distribuții în acest moment (Debian, RHEL, Fedora, SUSE, Ubuntu, Arch Linux).

Networkd-dispatcher este utilizat în multe distribuții Linux, inclusiv Ubuntu, care folosește un proces de fundal systemd-networkd pentru configurarea parametrilor de rețea și îndeplinește funcții similare cu NetworkManager-dispatcher, adică se ocupă de rularea scripturilor atunci când starea conexiunii de rețea se schimbă, de exemplu, este folosit pentru a porni VPN după stabilirea conexiunii de rețea principale.

Procesul de fundal legat de networkd-dispatcher rulează cu drepturi de root și primește semnale despre evenimente prin intermediul magistralei D-Bus. Informațiile despre evenimentele legate de schimbarea stării conexiunilor de rețea sunt trimise de serviciul systemd-networkd. Problema este că utilizatorii fără privilegii pot genera un eveniment pentru o stare inexistentă și iniția rularea propriului script, care va fi executat cu drepturi de root.

Systemd-networkd este conceput pentru a rula doar scripturi de procesare sistemice, plasate în directorul /etc/networkd-dispatcher, care nu sunt accesibile pentru înlocuire de către utilizator, dar din cauza vulnerabilității (CVE-2022-29799) în codul de procesare a căilor de fișiere a existat posibilitatea de a ieși din directorul bazic și de a rula scripturi arbitrare. În special, în formarea căii către script, s-au folosit valorile OperationalState și AdministrativeState transmise prin D-Bus, care nu au fost curățate de caractere speciale. Un atacator putea genera o stare proprie, în numele căreia apăreau caracterele „..\/” și redirecționa apelul networkd-dispatcher către un alt director.

A doua vulnerabilitate (CVE-2022-29800) este legată de starea de competiție — între verificarea parametrilor scriptului (apartenența la root) și rularea acestuia, a existat o scurtă fereastră de timp suficientă pentru a înlocui fișierul și a ocoli verificarea de apartenență a scriptului utilizatorului root. În plus, în networkd-dispatcher nu a existat o verificare a legăturilor simbolice, inclusiv la rularea scripturilor prin apelul subprocess.Popen, ceea ce a simplificat semnificativ organizarea atacului.

Tehnica de exploatare:

  • Se creează catalogul „/tmp/nimbuspwn” și un link simbolic „/tmp/nimbuspwn/poc.d”, care indică către catalogul „/sbin”, folosit pentru a verifica existența fișierelor executabile aparținând utilizatorului root.
  • Pentru fișierele executabile din „/sbin” se creează fișiere cu nume identic în catalogul „/tmp/nimbuspwn”, de exemplu, pentru fișierul „/sbin/vgs” se creează un fișier executabil „/tmp/nimbuspwn/vgs”, aparținând unui utilizator neprivilegiat, în care se introduce codul pe care atacatorul dorește să-l execute.
  • Prin D-Bus, procesul networkd-dispatcher trimite un semnal specificând în OperationalState valoarea „..//..//..//tmp/nimbuspwn/poc”. Pentru a trimite semnalul în spațiul de nume „org.freedesktop.network1”, s-au folosit metode de conectare a propriilor manipulatoare la systemd-networkd, de exemplu, prin manevre cu gpgv sau epmd, sau se poate profita de faptul că systemd-networkd nu este pornit implicit (de exemplu, în Linux Mint).
  • După primirea semnalului, Networkd-dispatcher construiește o listă de fișiere executabile aparținând utilizatorului root și disponibile în catalogul „/etc/networkd-dispatcher/..//..//..//tmp/nimbuspwn/poc.d”, care de fapt se referă la „/sbin”.
  • În momentul în care lista de fișiere este obținută, dar scriptul nu a fost încă pornit, linkul simbolic este redirecționat de la „/tmp/nimbuspwn/poc.d” la „/tmp/nimbuspwn” și networkd-dispatcher va rula cu drepturi de root scriptul amplasat de atacator.

Vulnerabilități în networkd-dispatcher, care permit obținerea drepturilor de root.


Sursa: opennet.ro
Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster