Dzisiaj mamy dla Was podwójne uderzenie (prawie jak baton Twix :)). Tym razem sytuacja dotyczy obu systemów operacyjnych Microsoft Windows oraz Linux, w których badacze odkryli luki pozwalające na podwyższenie uprawnień (eskalację) ze standardowego użytkownika do administratora systemu. Czyli użytkownika administrator na Windows oraz „root” na Linux. A miał być taki spokojny piątek…
Zaczniemy od opisu podatności w naszym ulubionym Windowsie.
Windows i podatność CVE-2022-21882
Nowa, krytyczna luka to kolejny przypadek niepoprawnie załatanej poprzedniej luki, którą opisywaliśmy w zeszłym roku tutaj (Microsoft, znowu niepoprawnie zalatana luka, serio?). Otrzymała ona punktację 7.1 w skali CVSS.
Umożliwia podniesienie uprawnień zwykłego użytkownika i pomyślne jej wykorzystanie może umożliwić zdalnej osobie atakującej wykonanie dowolnego kodu w systemie.
Tłumacząc w wielkim technicznym, telegraficzny skrócie, podatność polega na wykorzystywanym błędzie w win32k – sterowniku graficznym (GUI), składniku podsystemu Microsoft Windows, który jest częścią jądra systemowego. Winn32k służy do graficznego drukowania pulpitu systemu operacyjnego Windows. Ze względu na architekturę win32k, komponent ten musi mieć również możliwość wywoływania trybu użytkownika za pomocą funkcji zwrotnych, w celu ułatwienia tworzenia okien i zarządzanie nimi. I tutaj wykryto błąd.
Ciekawostką jest, że Win32k był jednym z najczęściej wykorzystywanych komponentów jądra systemu Windows i stanowił 63% luk w zabezpieczeniach w latach 2010-2018 ze względu na dużą powierzchnię ataków zapytań systemowych w porównaniu z wywołaniami „ntdll”. Luki w zabezpieczeniach Win32k są zwykle przekształcane w ataki oparte na danych przy użyciu prymitywu jądra odczytu/zapisu przy użyciu obiektu pulpitu znanego jako struktura danych tagWND.
Podatne systemy to:
- Windows 10 w wersji 1809 dla systemów 32-bitowych
- Windows 10 w wersji 1809 dla systemów opartych na procesorach x64
- Windows 10 w wersji 1809 dla systemów opartych na ARM64
- Windows Server 2019
- Windows Server 2019 (instalacja Server Core)
- Windows 10 w wersji 1909 dla systemów 32-bitowych
- Windows 10 w wersji 1909 dla systemów opartych na procesorach x64
- Windows 10 w wersji 1909 dla systemów opartych na ARM64
- Windows 10 w wersji 21H1 dla systemów opartych na procesorach x64
- Windows 10 w wersji 21H1 dla systemów opartych na ARM64
- Windows 10 w wersji 21H1 dla systemów 32-bitowych
- Windows Serwer 2022
- Windows Server 2022 (instalacja Server Core)
- Windows 10 w wersji 20H2 dla systemów opartych na procesorach x64
- Windows 10 w wersji 20H2 dla systemów 32-bitowych
- Windows 10 w wersji 20H2 dla systemów opartych na ARM64
- Windows Server, wersja 20H2 (Instalacja Server Core)
- Windows 11 dla systemów opartych na procesorach x64
- Windows 11 dla systemów opartych na ARM64
- Windows 10 w wersji 21H2 dla systemów 32-bitowych
- Windows 10 w wersji 21H2 dla systemów opartych na ARM64
- Windows 10 w wersji 21H2 dla systemów opartych na procesorach x64
Na stronie Microsoft (tutaj) dostępne są łatki do pobrania. Microsoft informuje także o dostępnym w Internecie exploicie, który jest aktywnie wykorzystywany. Takie przypadki należy szybko łatać, ponieważ stanowią duże zagrożenie dla środowiska informatycznego oraz wykorzystywane są w atakach malware i ransomware. Wystarczy przejęcie zwykłego konta użytkownika na systemie operacyjnym i można dzięki tej luce zdobyć najwyższe uprawnienia do systemu.
Linux i podatność CVE-2022-0185
Luka została opisana publicznie 18 stycznia przez badacza bezpieczeństwa (tutaj).
Wykorzystuje błąd przepełnienia bufora na stercie w pamięci (błąd w funkcji legacy_parse_param w funkcjonalności Filesystem Context jądra Linux, który niepoprawnie weryfikuje długość dostarczonych parametrów).
Nieuprzywilejowany użytkownik lokalny, który może otworzyć system plików oraz który nie obsługuje API kontekstowego systemu plików (a tym samym korzysta ze starszej obsługi), może wykorzystać tę lukę do eskalacji swoich uprawnień na system do użytkownika root.
Podatne są wersje systemu Ubuntu oraz Linux dostarczanych z systemem Red Hat Enterprise Linux 8.4 GA i nowszymi. Luka nie ma wpływu na poprzednie wersje systemu Red Hat Enterprise Linux.
Exploit’a znajdziecie tutaj.
Demo z wykorzystania exploit’a możecie zobaczyć tutaj:
Zaleceniem jest wyłączenie obsługi przestrzeni nazw użytkowników, ustawiając parametr user.max_user_namespaces na 0.
Na Linux wygląda to tak:
# echo “user.max_user_namespaces=0” > /etc/sysctl.d/userns.conf
# sysctl -p /etc/sysctl.d/userns.conf
W przypadku systemu Ubuntu należy wykonać następującą komendę:
#sysctl -w kernel.unprivileged_userns_clone=0
Dalsze szczegóły na temat tej podatności znajdziecie tutaj.