S-a descoperit o eroare care ar putea permite oricărui utilizator local de pe majoritatea sistemelor Linux sau Unix să aibă acces la root – o eroare nedepistată de un deceniu, au spus cercetătorii.

Bug-ul a fost găsit în Sudo, un utilitar încorporat în majoritatea sistemelor de operare Unix și Linux care permite unui utilizator fără privilegii de securitate să acceseze și să ruleze un program cu acreditările altui utilizator. Cercetătorii Qualys au numit vulnerabilitatea „Baron Samedit”, urmărită ca CVE-2021-3156. Ei au spus că bug-ul a intrat în codul Sudo în iulie 2011.

„Cercetătorii Qualys au reușit să verifice în mod independent vulnerabilitatea și să dezvolte mai multe variante de exploatare, dar și să obțină privilegii complete de root pe Ubuntu 20.04 (Sudo 1.8.31), Debian 10 (Sudo 1.8.27) și Fedora 33 (Sudo 1.9. 2) ”, conform raportului. „Este posibil ca și alte sisteme de operare și distribuții să fie exploatabile.”

Autorii Sudo au lansat o actualizare corecționată, versiunea Sudo 1.5.5p2.

„Nu toate sistemele de tip Unix folosesc aceeași implementare a Sudo, dar această vulnerabilitate se află în implementarea distribuită de pe https://www.sudo.ws/sudo.html (pagina principală Sudo) și este o implementare utilizată pe scară largă”, a declarat David A. Wheeler de la Linux Foundation.

Vestea bună despre bug-ul sudo

„O veste bună: acest bug nu este exploatabil de la distanță [fără autentificare]”, a adăugat Wheeler. „Un atacator trebuie să poată rula deja programe pe computerul vulnerabil înainte ca această vulnerabilitate să poată fi utilizată.”

Jerry Gamblin, director de cercetare de securitate la Kenna Security, a fost de acord cu Wheeler că, deși bug-ul este o vulnerabilitate periculoasă, posibilitatea atacurilor este scăzută.

„Este important să stabiliți un plan de a exploata această vulnerabilitate, o persoană rău intenționată ar avea nevoie de acces la distanță (SSH) sau de acces direct la o mașină Linux vulnerabilă”, a declarat Gamblin. „Deși este o vulnerabilitate care ar trebui reparată rapid, aceasta necesită un anumit nivel de acces preexistent, ceea ce face ca exploatarea pe scară largă să fie puțin probabilă”.



Acestea fiind spuse, atacatorii care au obținut accesul în stadiul inițial la un mediu Linux sunt încă perfect capabili să exploateze problema. Rețelele botnet Linux sunt, de asemenea, un vector de atac. Programul malware FreakOut recent descoperit, de exemplu, vizează dispozitive Linux cu produse specifice care nu au fost corectate împotriva diferitelor vulnerbilități.

„Mă aștept ca acest CVE să aibă un scor CVSS care se încadrează în intervalul 6-8. Este un atac local care necesită o complexitate scăzută și afectează integritatea și confidențialitatea”, a spus Gamblin. „Riscul pentru această vulnerabilitate ar fi semnificativ mai mare dacă oferiți acces la terminal utilizatorilor cu privilegii reduse, cum ar fi într-un mediu educațional sau într-un mediu în care se acordă acces angajaților pentru a rula sau monitoriza sarcini individuale.”

Iată cum funcționează vulerabilitatea: în mod specific, bug-ul este un buffer overflow în Sudo, care permite oricărui utilizator local să-l păcălească pentru a rula în modul „shell”.

Autorii Sudo au explicat într-o recomandare că atunci când Sudo rulează în modul shell, „scapă de caracterele speciale din argumentele comenzii cu un backslash”. Apoi, un plugin de politică elimină orice caractere de evadare înainte de a decide permisiunile utilizatorului Sudo.

Dar nu doar un singur bug a expus aceste sisteme, ci combinația a două bug-uri care lucrează în tandem în Sudo face posibilă exploatarea, au explicat autorii.

„O eroare în cod care elimină caracterele de evadare va citi dincolo de ultimul caracter al unui șir dacă se termină cu un caracter backslash”, au explicat autorii Sudo. „În circumstanțe normale, această eroare ar fi inofensivă, deoarece Sudo a scăpat de toate backslash-urile din argumentele comenzii.”

Dar o altă vulnerabilitate, căruia i se atribuie CVE, se ascundea în Sudo, ceea ce a făcut din exploatare o amenințare.



„Cu toate acestea, din cauza unei erori diferite, de data aceasta în codul de analiză a liniei de comandă, este posibil să rulați„ sudoedit ”fie cu opțiunile -s, fie cu -i, setând un semnalizator care indică faptul că modul shell este activat”. „Deoarece o comandă nu se execută de fapt, Sudo nu scapă de caracterele speciale.  Această neconcordanță este ceea ce face ca bugul să poată fi exploatat. ”

Linux/Unix Buffer Overflow

Din punct de vedere tehnic, codul vulnerabil depășește bufferul „user_args”, care oferă atacatorilor control asupra dimensiunii și conținutului overflow-ului și le permite să schimbe octeți în overflow, conform Qualys.

„De exemplu, pe un Linux amd64, următoarea comandă alocă un buffer„ user_args ”de 24 de octeți (o bucată de 32 de octeți) și suprascrie câmpul de dimensiuni al buffer-ului următor cu„ A = a \ 0B = b \ 0 ”(0x00623d4200613d41 ), câmpul său fd cu „C = c \ 0D = d \ 0” (0x00643d4400633d43) și câmpul său bk cu „E = e \ 0F = f \ 0 ″ (0x00663d4600653d45):” ne arată în raport.

Cercetătorii Qualys au publicat un videoclip cu dovada conceptului (PoC):

Wheeler a adăugat că oricine rulează sistemul ar trebui să implementeze actualizarea cu patch-uri cât mai curând posibil.

„O altă veste bună este că aceasta este ușor de remediat și actualizat; remedierea acestei situații nu ar trebui să schimbe modul în care funcționează în cazul normal ”, a adăugat Wheeler. „Deci, ar trebui să actualizați imediat versiunea sudo.”


0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments