O vulnerabilitate în sudo care permite creșterea privilegiilor folosind reguli specifice

În utilitarul Sudo, utilizat pentru a organiza executarea comenzilor în numele altor utilizatori, a fost identificată vulnerabilitatea (CVE-2019-14287), care permite executarea de comenzi cu privilegii de root, în cazul în care în configurația sudoers există reguli în care, în secțiunea de verificare a identificatorului utilizatorului, după cuvântul cheie de permisie „ALL”, există o interdicție explicită de a rula ca root („... (ALL, !root) ...”). În configurațiile standard în distribuțiile vulnerabilitatea nu se manifestă.

În cazul în care în sudoers există reguli permise, dar extrem de rar întâlnite în practică, care permit executarea unei anumite comenzi sub UID-ul oricărui utilizator, cu excepția root, un atacator, care are autoritatea de a executa această comandă, poate ocoli restricția stabilită și poate executa comanda cu privilegii de root. Pentru a trece peste restricție, este suficient să încerce să execute comanda specificată în configurări cu UID „-1” sau „4294967295”, ceea ce va duce la executarea acesteia cu UID 0.

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

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

sau o variantă care permite executarea doar de către un anumit utilizator bob:

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

Utilizatorul poate executa „sudo -u ‘#-1’ id” și utilitarul /usr/bin/id va fi lansat cu privilegii de root, în ciuda interdicției explicite din configurări. Problema este cauzată de o neatenție față de valorile speciale „-1” sau „4294967295”, care nu conduc la schimbarea UID-ului, dar deoarece sudo este deja executat ca root, fără schimbarea UID-ului, comanda țintă este, de asemenea, lansată cu privilegii de root.

În distribuțiile SUSE și openSUSE, fără a specifica în regulă „NOPASSWD” vulnerabilitatea nu este exploatabilă, deoarece în sudoers, în mod implicit, este activat modul „Defaults targetpw”, în care se efectuează verificarea UID în baza de date a parolelor, cu afișarea unui prompt de introducere a parolei utilizatorului țintă. Pentru astfel de sisteme, atacul poate fi realizat doar în prezența regulilor de tip:

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

Problema a fost remediată în versiunea Sudo 1.8.28. Corecția este, de asemenea, disponibilă sub formă patch. În distribuțiile vulnerabilitatea a fost deja rezolvată în Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo și FreeBSD. La momentul redactării acestei știri, problema rămâne nerezolvată în RHEL și Fedora. Vulnerabilitatea a fost identificată de cercetătorii în securitate de la compania Apple.

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