Vulnerabilitatea în sudo care permite escaladarea privilegiilor atunci când se utilizează reguli specifice

În utilitate sudo, folosit pentru a organiza executarea comenzilor în numele altor utilizatori, identificat vulnerabilitate (CVE-2019-14287), care vă permite să executați comenzi cu drepturi root, dacă există reguli în setările sudoers în care în secțiunea de verificare a ID-ului utilizatorului după cuvântul cheie de permitere „ALL” există o interdicție explicită de a rula cu drepturi root („... (TOATE, !rădăcină) ..." ). Vulnerabilitatea nu apare în configurațiile implicite în distribuții.

Dacă sudoers are reguli valide, dar extrem de rare în practică, care permit executarea unei anumite comenzi sub UID-ul oricărui utilizator altul decât root, un atacator care are autoritatea de a executa această comandă poate ocoli restricția stabilită și executa comanda cu drepturi root. Pentru a ocoli limitarea, încercați doar să executați comanda specificată în setări cu UID „-1” sau „4294967295”, ceea ce va duce la executarea acesteia cu UID 0.

De exemplu, dacă există o regulă în setări care dă oricărui utilizator dreptul de a executa programul /usr/bin/id sub orice UID:

myhost ALL = (ALL, !root) /usr/bin/id

sau o opțiune care permite execuția numai pentru un anumit utilizator bob:

myhost bob = (ALL, !root) /usr/bin/id

Utilizatorul poate executa „sudo -u '#-1' id” iar utilitarul /usr/bin/id va fi lansat ca root, în ciuda interdicției explicite din setări. Problema este cauzată de trecerea cu vederea valorilor speciale „-1” sau „4294967295”, care nu duc la o modificare a UID-ului, dar deoarece sudo în sine rulează deja ca root, fără a schimba UID-ul, comanda țintă este, de asemenea, lansat cu drepturi root.

În distribuțiile SUSE și openSUSE, fără a specifica „NOPASSWD” în regulă, există o vulnerabilitate neexploatabil, deoarece în sudoers modul „Defaults targetpw” este activat în mod implicit, care verifică UID-ul cu baza de date de parole și vă solicită să introduceți parola utilizatorului țintă. Pentru astfel de sisteme, un atac poate fi efectuat numai dacă există reguli de forma:

myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id

Problemă remediată în lansare Sudo 1.8.28. Remedierea este disponibilă și în formular plasture. În kiturile de distribuție, vulnerabilitatea a fost deja remediată în Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo и FreeBSD. În momentul scrierii, problema rămâne nerezolvată în RHEL и Fedora. Vulnerabilitatea a fost identificată de cercetătorii de securitate de la Apple.

Sursa: opennet.ru

Adauga un comentariu