Qualys ujawnił wczoraj lukę w sudo, która występuje w systemach operacyjnych typu Unix/Linux. Umożliwia każdemu lokalnemu użytkownikowi uzyskanie uprawnień root bez konieczności uwierzytelniania.


Kilka słów o Sudo

Sudo (skrót od „superuser do”) to program na systemach Unix (oraz unix’o pochodnych), który umożliwia administratorom nadawanie ograniczonych uprawnień root’a zwykłym użytkownikom systemu wymienionym w pliku sudoers. Rejestruje ich dziennik aktywności i działa na zasadzie przyznawania dla użytkownika jak najmniejszych uprawnień do systemu w celu wykonywania określonych czynności (przywilejów). Takie „proxy” dla uprawnień.
Funkcjonalność ta ma znaczący wpływ na bezpieczeństwo, ponieważ ogranicza uprawnienia użytkowników do wykonania w nim określonych zadań.
Podczas wykonywania poleceń w systemie Unix’o pochodnym (np. Linux, Centos, Ubuntu itp.) użytkownicy nieuprzywilejowani mogą używać polecenia sudo do wykonywania ich na prawach użytkownika „root”, pod warunkiem, że posiadają przydzielone takie uprawnienie lub znają hasło do tego konta. Sudo można również skonfigurować tak, aby zezwalać zwykłym użytkownikom na uruchamianie poleceń w kontekście innego użytkownika. Robi się to poprzez włączenie specjalnych dyrektyw/przełączników w pliku konfiguracyjnym o nazwie sudoers.


Na czym polega problem?

Luka (znana również jako Baron Samedit ) umożliwiająca eskalację przywilejów Sudo została ujawniona 13 stycznia 2021 przez analityków bezpieczeństwa z Qualys i otrzymała numer CVE-2021-3156. Lecz do jej upublicznienia specjaliści poczekali, aż do momentu pojawiania się oficjalnych poprawek twórcy. Treść całego opisu podatności można znaleźć tutaj.

Jak twierdzą badacze, luka występuje w programie Sudo już od prawie 9 lat, a dokładniej od lipca 2011 r. – od poprawki o numerze 8255ed69. Wpływa na domyślne konfiguracje wszystkich stabilnych wersji od 1.9.0 do 1.9.5p1 oraz wszystkich starszych wersji od 1.8.2 do 1.8.31p2.

Problem polega na przepełnieniu bufora opartym na stercie, który może wykorzystać każdy lokalny użytkownik (zwykli użytkownicy i użytkownicy systemu, wymienieni w pliku sudoers lub nie), przy czym atakujący nie muszą znać hasła użytkownika, aby skutecznie wykorzystać lukę. Owe przepełnienie bufora umożliwia każdemu użytkownikowi lokalnemu uzyskanie uprawnień root’a jeśli wyzwalane jest przez Sudo niepoprawne cofanie znaku ukośnika odwrotnego (backshash) podawanego w argumentach wykonania komendy.

Qualys stworzył trzy exploity dla CVE-2021-3156 w celu pokazania w jaki sposób luka może zostać skutecznie wykorzystana przez potencjalnych atakujących.

Współautorzy Sudo naprawili lukę w wydanej wczoraj wersji sudo 1.9.5p2 w tym samym czasie, w którym Qualys publicznie ujawnił odkryta przez nich podatność.
Pocieszeniem jest to, że lukę można wykorzystać tylko w niestandardowych konfiguracjach Unix/Linux.
Demo podatności możecie zobaczyć na poniższym nagraniu:




Jak sprawdzić czy nasz system jest podatny?

W celu sprawdzenia czy Wasz system jest podatny na tego typu atak z wykorzystaniem opisywanej podatności należy się do niego zalogować się jako użytkownik inny niż root i uruchomić polecenie „sudoedit -s /”.
Systemy podatne na atak będą zgłaszać błąd zaczynający się od „sudoedit:”, podczas gdy systemy po wgranej łatce będą wyświetlać błąd zaczynający się od „usage:”.
Przykład podatnego systemu:


Łatajcie systemy Unix*

Administratorzy systemów, którzy używają Sudo do delegowania uprawnień root’a, powinni jak najszybciej uaktualnić sudo do wersji 1.9.5p2 lub nowszej

Podziel się z innymi tym artykułem!