Firma Qualis
Luka możliwa do wykorzystania zdalnie jest spowodowana błędem w wywoływaniu procedury uwierzytelniania w bibliotece libc, która wywołuje
program /usr/libexec/auth/login_style przekazuje argumenty w wierszu poleceń. Również podczas wywoływania login_style przy użyciu opcjonalnego parametru „-s service” możliwe jest przesłanie nazwy protokołu. Jeśli użyjesz znaku „-” na początku nazwy użytkownika, nazwa ta będzie traktowana jako opcja podczas uruchamiania login_style. Odpowiednio, jeśli podczas uwierzytelniania podasz „-schallenge” lub „-schallenge:passwd” jako nazwę użytkownika, login_style potraktuje żądanie jako żądanie użycia procedury obsługi
Problem polega na tym, że protokół S/Key w stylu_logowania jest obsługiwany tylko formalnie, ale w rzeczywistości jest ignorowany wraz ze znakiem pomyślnego uwierzytelnienia. W ten sposób osoba atakująca może podszywając się pod użytkownika „-challenge” ominąć uwierzytelnianie i uzyskać dostęp bez podawania hasła lub kluczy. Problem może potencjalnie dotyczyć wszystkich usług sieciowych korzystających ze standardowych wywołań biblioteki libc do uwierzytelniania. Na przykład możliwość ominięcia uwierzytelniania jest obsługiwana w smtpd (AUTH PLAIN), ldapd i Radiad.
Luka nie występuje w sshd, gdyż posiada ona dodatkowe zabezpieczenie sprawdzające obecność użytkownika w systemie. Jednakże sshd można wykorzystać do przetestowania podatności systemu - podczas uzyskiwania dostępu do nazwy użytkownika „-sresponse:passwd” połączenie zawiesza się, ponieważ sshd czeka, aż login_passwd zwróci parametry wyzwania, a login_passwd czeka na brakujące parametry zostać przesłane (nazwa „- odpowiedź” traktowana jest jako opcja). Lokalny atakujący mógłby potencjalnie spróbować ominąć uwierzytelnianie w narzędziu su, ale przekazanie nazwy „-sresponse” powoduje awarię procesu poprzez zwrócenie wskaźnika zerowego podczas wykonywania funkcji getpwnam_r("-schallenge", ...).
Inne luki:
- CVE-2019-19520 Lokalna eskalacja uprawnień poprzez manipulację narzędziem xlock dostarczonym z flagą sgid zmieniającą grupę na „auth”. W kodzie xlock redefiniowanie ścieżek do bibliotek jest zabronione tylko w przypadku zmiany identyfikatora użytkownika (setuid), co umożliwia atakującemu zmianę zmiennej środowiskowej „LIBGL_DRIVERS_PATH” i zorganizowanie ładowania jego biblioteki współdzielonej, której kod zostanie wykonany po podniesieniu uprawnień do grupy „auth”.
- CVE-2019-19522 — umożliwia użytkownikowi lokalnemu będącemu członkiem grupy „auth” uruchamianie kodu jako root, gdy w systemie włączone jest uwierzytelnianie S/Key lub YubiKey (domyślnie nieaktywne). Dołączenie do grupy „auth”, do której można uzyskać dostęp wykorzystując wspomnianą wyżej lukę w xlocku, pozwala na zapisywanie plików do katalogów /etc/skey i /var/db/yubikey. Na przykład osoba atakująca może dodać nowy plik /etc/skey/root w celu wygenerowania jednorazowych kluczy do uwierzytelnienia jako użytkownik root za pośrednictwem S/Key.
- CVE-2019-19519 – możliwość zwiększenia limitów zasobów poprzez manipulację narzędziem su. W przypadku podania opcji -L, która powoduje cykliczne powtarzanie prób uwierzytelnienia w przypadku niepowodzenia, klasa użytkownika jest ustawiana tylko raz i nie jest resetowana przy kolejnych próbach. Osoba atakująca może wykonać polecenie „su -l -L” przy pierwszej próbie wprowadzenia cudzego loginu przy użyciu innej klasy konta, ale przy drugiej próbie może pomyślnie uwierzytelnić się jako on sam. W tej sytuacji na użytkownika zostaną nałożone ograniczenia oparte na klasie użytkownika określonej przy pierwszej próbie (na przykład maksymalnej liczbie procesów lub rozmiarze pamięci procesu). Metoda działa tylko w przypadku pożyczania limitów od nieuprzywilejowanych użytkowników, ponieważ użytkownik root musi należeć do grupy kołowej).
Dodatkowo można to zauważyć
Źródło: opennet.ru