Absurdalnie prosta do wykorzystania krytyczna podatność w urządzeniach od Palo Alto (unauth RCE jako root). Luka jest już wykorzystywana przez atakujących.
Nie znajdzie się chyba miesiąc w kończącym się już 2024, który nie przyniósłby przynajmniej jednej krytycznej podatności w rozwiązaniach bezpieczeństwa klasy enterprise. Badacze (jak również różni aktorzy nie trudniący się etyczną pracą) upodobali sobie firewalle oraz VPNy. Pokazują, że chociaż są to urządzenia oraz oprogramowanie, które służy do zwiększenia bezpieczeństwa organizacji – to wciąż można tam znaleźć naprawdę trywialne błędy. Tym razem badacze cyberbezpieczeństwa wiedzieli o tym, że luka istnieje i że jest wykorzystywana, ponieważ producent ostrzegał swoich użytkowników. Postanowili jednak sprawdzić co tak naprawdę poszło źle w Next Gen produkcie od bezpieczeństwa. Wnioski… no nie są zbyt optymistyczne.
TLDR:
WatchTowr opublikowało raport opisujący dwie podatności wyceniane jako critical i medium ( CVE-2024-9474 oraz CVE-2024-0012) pozwalające na zdalne wykonanie kodu bez uwierzytelnienia jako użytkownik root
Ścieżka eksploitacji jest prosta i nie wymaga zaawansowanej wiedzy technicznej
Aby podatność mogła być wykorzystana, atakujący musi mieć dostęp sieciowy do ekranu logowania panelu administracyjnego urządzenia
Podatność jest wykorzystywana przez różnych aktorów w sieci, dlatego zalecane jest natychmiastowe działanie
Palo Alto wydało odpowiednie advisory i poinformowało (w kilkustopniowym procesie) o podatności swoich klientów
Producent informuje, że problemy zostały załatane w następujących wersjach systemów: PAN-OS 10.1.14-h6, PAN-OS 10.2.12-h2, PAN-OS 11.0.6-h1, PAN-OS 11.1.5-h1, PAN-OS 11.2.4-h1 oraz kolejne
WatchTowr pokazał, jak w banalny sposób obejść proces uwierzytelniania. Wystarczy… dodać nagłówek oraz sufix do scieżki w zapytaniu HTTP. Szczegóły tej podatności kryją się w diffie przeprowadzonym na podatnej oraz poprawionej wersji:
Rysunek 1. Diff pliku /etc/nginx/conf/locations.conf dla podatnego i załatanego firmware (źródło: WatchTowr)
Z wcześniejszej analizy oprogramowania wyszło, że nagłówek X-pan-AuthCheck odpowiada za obejście uwierzytelniania (w przeciwnym przypadku użytkownik jest przekierowywany do panelu logowania) – szczegóły na ten temat znajdują się w oryginalnym poście. Nagłówek ten jest stosowany np. w przypadku odwiedzania URI /unauth/. Jak to z porównaniami aktualizacji bezpieczeństwa bywa – zmieniony kod najpewniej miał związek z podatnościami. Błędna konfiguracja powodowała złe ustawienia nagłówków dla .js.map.
Co zrobili badacze? Do podatnej instancji przesłali zapytanie pod takie URI, a w nagłówkach wyłączyli sobie uwierzytelnienie. Prawda, że piękne?
GET /php/ztp_gate.php/.js.map HTTP/1.1 Host: {{Hostname}} X-PAN-AUTHCHECK: off
Listing 1. Zapytanie z bypassem uwierzytelnienia (źródło: WatchTowr)
Dalej jest tylko “lepiej”, okazuje się, że kod odpowiedzialny za logi zawiera trywialny… command injection (możliwość wstrzyknięcia dodatkowych parametrów do polecenia wykonywanego przez aplikację). Oczywiście wstrzyknięcie gwarantuje atakującemu wykonanie polecenia z uprawnieniami użytkownika root.
Rysunek 2. Diff pliku /var/appweb/htdocs/php-packages/panui_core/src/log/AuditLog.php z command injection (źródło: WatchTowr)
Okazuje się, że użytkownik ma możliwość zdefiniowania username, przy pomocy zapytania:
POST /php/utils/createRemoteAppwebSession.php/watchTowr.js.map HTTP/1.1Host: {{Hostname}} X-PAN-AUTHCHECK: off Content-Type: application/x-www-form-urlencoded Content-Length: 107
Listing 3. Odpowiedź na zapytanie do endpointu zwracającego fragment logu zawierającego odpowiedź wstrzykniętego polecenia
Reasumując, mimo że marketingowo urządzenie jest “Next Gen” to “łańcuszek” podatności nie należy do tych bardziej skomplikowanych. Póki co badacze nie udostępnili zautomatyzowanego PoCa, ale na bazie opisu możliwe odtworzenie i zautomatyzowanie tej trywialnej podatności. Zademonstrowany został za to szablonnuclei, który pozwala sprawdzić czy Wasz host jest podatny.
Jak myślicie, czy końcówka listopada oraz grudzień to czas na kolejne podatności w firewallach i VPNach? Da się nas jeszcze zaskoczyć? :)
IoC opublikowane przez dostawcę znajdują się tutaj.
Eksploitacja spoko, bo nie znaczy po polsku czegoś totalnie innego niż po angielsku, jest po prostu nowym słowem. Gorzej z aktorami i słynną kolaboracją ;)
Zabawnie zacznie być jak to wszystko będzie pisane przez AI bo programisci i spece od bezpieczeństwa drodzy.
No właśnie w AI nadzieja, bo “programisty” z łapanki za miskę ryżu kodujo jak kodujo.
Eksploitacja?
Aktorzy?
Po jakiemu to?
Krytykować zawsze łatwo. Zamiast tego można by na przykład zasugerować jak to napisać inaczej.
Też nie lubię takich bezpośrednich kalek z angielskiego, ale wszystkie określenia są zgodne z żargonem będącym w IT.
Eksploitacja spoko, bo nie znaczy po polsku czegoś totalnie innego niż po angielsku, jest po prostu nowym słowem. Gorzej z aktorami i słynną kolaboracją ;)