W Snapie znaleziono dwie luki, które pozwoliły na uruchomienie kodu jako root

Ujawniono kwalifikacje wiadomości, które identyfikuję dwie luki (CVE-2021-44731 i CVE-2021-44730) w narzędziu snap-limit, wysyłane z flagą głównego SUID i wywoływane przez proces snapd w celu wygenerowania środowiska wykonywalnego dla aplikacji dystrybuowanych w pakietach snap.

W poście na blogu wspomniano, że luki w zabezpieczeniach umożliwiają nieuprzywilejowanemu użytkownikowi lokalnemu wykonanie kodu jako root w systemie.

Pierwsza luka umożliwia atak polegający na manipulacji łączami fizycznymi, ale wymaga wyłączenia ochrony systemowych dowiązań twardych (poprzez ustawienie sysctl fs.protected_hardlinks na 0).

Problem wynika to z nieprawidłowej weryfikacji lokalizacji plików wykonywalnych narzędzi snap-update-ns i snap-discard-ns które działają jako root. Ścieżka do tych plików została obliczona w funkcji sc_open_snapd_tool() w oparciu o jej własną ścieżkę z /proc/self/exe, co pozwala na utworzenie twardego łącza, aby ograniczyć się do katalogu i umieścić opcje w snap-update-ns i snap -discard-ns w tym katalogu. Po uruchomieniu z twardego łącza, snap-limite jako root wykona podstawione przez atakującego pliki snap-update-ns i snap-discard-ns z bieżącego katalogu.

Pomyślne wykorzystanie tej luki umożliwia każdemu nieuprzywilejowanemu użytkownikowi uzyskanie uprawnień administratora na podatnym hoście. Analitycy bezpieczeństwa Qualys byli w stanie niezależnie zweryfikować tę lukę, opracować exploita i uzyskać pełne uprawnienia roota w domyślnych instalacjach Ubuntu.

Gdy tylko zespół badawczy Qualys potwierdził tę lukę, zaangażowaliśmy się w odpowiedzialne ujawnienie luki i skoordynowaliśmy z dostawcami i dystrybucjami open source, aby ogłosić tę nowo odkrytą lukę.

Druga podatność jest spowodowana sytuacją wyścigową i może być wykorzystany w domyślnej konfiguracji pulpitu Ubuntu. Aby exploit działał pomyślnie na Ubuntu Server, podczas instalacji musisz wybrać jeden z pakietów z sekcji „Polecane przystawki serwera”.

warunki wyścigu manifestuje się w funkcji setup_private_mount() wywoływane podczas przygotowywania przestrzeni nazw punktu montowania dla pakietu instant. Ta funkcja tworzy tymczasowy katalog "/tmp/snap.$SNAP_NAME/tmp" lub używa istniejącego do łączenia i montowania do niego katalogów pakietu snap.

Ponieważ nazwa katalogu tymczasowego jest przewidywalna, atakujący może zmienić jego zawartość na dowiązanie symboliczne po zweryfikowaniu właściciela, ale przed wywołaniem systemu montowania. Na przykład możesz utworzyć dowiązanie symboliczne „/tmp/snap.lxd/tmp” w katalogu /tmp/snap.lxd, które wskazuje na dowolny katalog, a wywołanie mount() będzie podążać za dowiązaniem symbolicznym i zamontować katalog w przestrzeni imion.

Podobnie możesz zamontować jego zawartość w /var/lib i, zastępując /var/lib/snapd/mount/snap.snap-store.user-fstab, zorganizować zamontowanie katalogu /etc w przestrzeni nazw pakietu, aby załadować bibliotekę z dostępu do roota, zastępując /etc/ld.so.preload.

Zauważono, że stworzenie exploita okazało się nietrywialnym zadaniem, ponieważ narzędzie snap-confine jest napisane przy użyciu bezpiecznych technik programowania (snapd jest napisane w Go, ale C jest używane do snap-confine), ma ochronę opartą na profilach AppArmor, filtruje wywołania systemowe w oparciu o mechanizm seccomp i używa przestrzeni nazw mount do izolacji.

Badaczom udało się jednak przygotować funkcjonalny exploit aby uzyskać dostęp do roota w systemie. Kod exploita zostanie wydany kilka tygodni po zainstalowaniu przez użytkowników dostarczonych aktualizacji.

Na koniec warto o tym wspomniećProblemy zostały rozwiązane w aktualizacji pakietu snapd dla wersji Ubuntu 21.10, 20.04 i 18.04.

Oprócz innych dystrybucji korzystających ze Snapa został wydany Snapd 2.54.3, który oprócz powyższych problemów naprawia jeszcze jedną podatność (CVE-2021-4120), która pozwala przy instalacji specjalnie zaprojektowanych pakietów wtyczek, pomiń dowolne reguły AppArmor i omiń ograniczenia dostępu ustawione dla pakietu.

Jeżeli jesteś chcesz dowiedzieć się więcej na ten temat, możesz sprawdzić szczegóły W poniższym linku.


Zostaw swój komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

*

*

  1. Odpowiedzialny za dane: Miguel Ángel Gatón
  2. Cel danych: kontrola spamu, zarządzanie komentarzami.
  3. Legitymacja: Twoja zgoda
  4. Przekazywanie danych: Dane nie będą przekazywane stronom trzecim, z wyjątkiem obowiązku prawnego.
  5. Przechowywanie danych: baza danych hostowana przez Occentus Networks (UE)
  6. Prawa: w dowolnym momencie możesz ograniczyć, odzyskać i usunąć swoje dane.