Luki w interfejsie sieciowym urządzeń sieciowych Juniper dostarczanych z JunOS

W interfejsie webowym J-Web, który jest wykorzystywany w urządzeniach sieciowych Juniper wyposażonych w system operacyjny JunOS, zidentyfikowano kilka podatności, z których najniebezpieczniejsza (CVE-2022-22241) pozwala na zdalne wykonanie kodu w systemie bez konieczności uwierzytelnienie poprzez wysłanie specjalnie zaprojektowanego żądania HTTP. Użytkownikom sprzętu Juniper zaleca się zainstalowanie aktualizacji oprogramowania sprzętowego, a jeśli nie jest to możliwe, zadbanie o to, aby dostęp do interfejsu WWW był zablokowany z sieci zewnętrznych i ograniczony wyłącznie do zaufanych hostów.

Istota luki polega na tym, że przekazana przez użytkownika ścieżka pliku jest przetwarzana w skrypcie /jsdm/ajax/logging_browse.php bez filtrowania prefiksu z typem zawartości na etapie przed sprawdzeniem uwierzytelnienia. Osoba atakująca może przesłać złośliwy plik phar pod przykrywką obrazu i wykonać kod PHP znajdujący się w archiwum phar, korzystając z metody ataku „deserializacja Phar” (na przykład podając „filepath=phar:/path/pharfile.jpg ” w żądaniu).

Problem polega na tym, że podczas sprawdzania przesłanego pliku za pomocą funkcji PHP is_dir(), funkcja ta automatycznie deserializuje metadane z Archiwum Phar podczas przetwarzania ścieżek rozpoczynających się od „phar://”. Podobny efekt obserwuje się podczas przetwarzania ścieżek plików dostarczonych przez użytkownika w funkcjach file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() i filesize().

Atak komplikuje fakt, że oprócz zainicjowania wykonania archiwum phar, atakujący musi znaleźć sposób na pobranie go na urządzenie (wchodząc do pliku /jsdm/ajax/logging_browse.php można jedynie podać ścieżkę do wykonać już istniejący plik). Możliwe scenariusze przedostania się plików na urządzenie obejmują pobranie pliku phar podszywającego się pod obraz za pośrednictwem usługi przesyłania obrazów i zastąpienie go w pamięci podręcznej treści internetowych.

Inne luki:

  • CVE-2022-22242 – podstawienie niefiltrowanych parametrów zewnętrznych na wyjściu skryptu error.php, który umożliwia wykonywanie skryptów cross-site i wykonywanie dowolnego kodu JavaScript w przeglądarce użytkownika podczas podążania za linkiem (na przykład „https:// JUNOS_IP/error.php?NAZWA_SERWERA= alert(0) " Lukę można wykorzystać do przechwycenia parametrów sesji administratora, jeśli atakującym uda się nakłonić administratora do otwarcia specjalnie zaprojektowanego łącza.
  • CVE-2022-22243, CVE-2022-22244 Podstawianie wyrażeń XPATH za pomocą skryptów jsdm/ajax/wizards/setup/setup.php i /modules/monitor/interfaces/interface.php umożliwia nieuprzywilejowanemu uwierzytelnionemu użytkownikowi manipulowanie sesjami administracyjnymi.
  • CVE-2022-22245 Brak odpowiedniego oczyszczenia sekwencji „..” w ścieżkach przetwarzanych w skrypcie Upload.php umożliwia uwierzytelnionemu użytkownikowi przesłanie pliku PHP do katalogu, który umożliwia wykonanie skryptów PHP (na przykład poprzez przekazanie ścieżka „nazwa_pliku=\. .\..\..\..\www\dir\new\shell.php”).
  • CVE-2022-22246 - Możliwość wykonania dowolnego lokalnego pliku PHP poprzez manipulację przez uwierzytelnionego użytkownika skryptem jrest.php, w którym zewnętrzne parametry służą do utworzenia nazwy pliku ładowanego przez funkcję "require_once()" (dla przykład: „/jrest.php?payload =alol/lol/any\..\..\..\..\any\file”)

Źródło: opennet.ru

Dodaj komentarz