Luka w sudo, umożliwiająca podniesienie uprawnień przy użyciu specyficznych zasad

W narzędziu Sudo, używanym do organizowania wykonywania poleceń w imieniu innych użytkowników, wykryto luka (CVE-2019-14287), która pozwala na wykonywanie poleceń z uprawnieniami root, pod warunkiem, że w ustawieniach sudoers są zasady, w których w sekcji sprawdzania identyfikatora użytkownika po zezwalającym słowie kluczowym „ALL” następuje wyraźny zakaz uruchamiania z uprawnieniami root („… (ALL, !root) …”). W domyślnych konfiguracjach w dystrybucjach podatność ta nie występuje.

W przypadku wystąpienia w sudoers dozwolonych, ale niezwykle rzadko spotykanych w praktyce reguł, które zezwalają na wykonanie określonego polecenia z identyfikatorem UID dowolnego użytkownika, z wyjątkiem root, atakujący, który ma uprawnienia do wykonania tego polecenia, może obejść nałożone ograniczenie i wykonać polecenie z uprawnieniami root. Aby obejść ograniczenie, wystarczy spróbować wykonać określone w ustawieniach polecenie z UID „-1” lub „4294967295”, co spowoduje jego wykonanie z UID 0.

Na przykład, jeśli w ustawieniach istnieje zasada, która daje dowolnemu użytkownikowi prawo do wykonywania programu /usr/bin/id pod dowolnym UID:

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

lub wariant, który zezwala na wykonanie tylko dla konkretnego użytkownika bob:

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

Użytkownik może wykonać „sudo -u ‘#-1’ id”, a narzędzie /usr/bin/id zostanie uruchomione z uprawnieniami root, pomimo wyraźnego zakazu w ustawieniach. Problem wynika z pominięcia specjalnych wartości „-1” lub „4294967295”, które nie prowadzą do zmiany UID, ale ponieważ samo sudo już działa pod użytkownikiem root, to bez zmiany UID także docelowe polecenie jest uruchamiane z uprawnieniami root.

W dystrybucjach SUSE i openSUSE bez wskazania w regule „NOPASSWD” podatność nie jest wykorzystywana, ponieważ w sudoers domyślnie włączony jest tryb „Defaults targetpw”, w którym sprawdzany jest UID w bazie haseł z wyświetleniem zapytania o wprowadzenie hasła docelowego użytkownika. Na podobnych systemach atak może być przeprowadzony tylko przy wystąpieniu reguł typu:

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

Problem został rozwiązany w wydaniu Sudo 1.8.28. Poprawka jest również dostępna w formie łatki. W dystrybucjach luka została już usunięta w Debian, Arch Linux, SUSE/openSUSE, Ubuntu, Gentoo i FreeBSD. W momencie pisania tej wiadomości problem pozostaje nierozwiązany w RHEL i Fedora. Luka została wykryta przez badaczy bezpieczeństwa z firmy Apple.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster