The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Уязвимости в web-интерфейсе сетевых устройств Juniper, поставляемых с JunOS

30.10.2022 19:23

В web-интерфейсе J-Web, который используется в сетевых устройствах компании Juniper, оснащённых операционной системой JunOS, выявлено несколько уязвимостей, наиболее опасная из которых (CVE-2022-22241) позволяет удалённо без прохождения аутентификации выполнить свой код в системе через отправку специально оформленного HTTP-запроса. Пользователям оборудования Juniper рекомендовано установить обновление прошивки, а если это невозможно, проследить, чтобы доступ к web-интерфейсу был заблокирован из внешних сетей и ограничен только заслуживающими доверия хостами.

Суть уязвимости в том, что передаваемый пользователем файловый путь обрабатываются в скрипте /jsdm/ajax/logging_browse.php без фильтрации префикса с типом контента на стадии до проверки аутентификации. Атакующий может передать под видом изображения вредоносный phar-файл и добиться выполнения размещённого в phar-архиве PHP-кода, воспользовавшись методом атаки "Phar deserialization" (например, указав в запросе "filepath=phar:/путь/pharfile.jpg").

Проблема в том, что при проверке загруженного файла при помощи PHP-функции is_dir(), эта функция автоматически выполняет десериализацию метаданных из архива Phar (PHP Archive) при обработке путей, начинающихся с "phar://". Аналогичный эффект наблюдается при обработке переданных пользователем файловых путей в функциях file_get_contents(), fopen(), file(), file_exists(), md5_file(), filemtime() и filesize().

Атака усложняется тем, что помимо инициирования выполнения phar-архива, злоумышленник должен найти способ его загрузки на устройство (через обращение к /jsdm/ajax/logging_browse.php можно лишь указать путь для выполнения уже существующего файла). Из возможных сценариев попадания файлов на устройство упомянуты загрузка phar-файла под видом картинки через сервис передачи изображений и подстановка файла в кэш web-контента.

Другие уязвимости:

  • CVE-2022-22242 - подстановка неотфильтрованных внешних параметров в вывод скрипта error.php, позволяющая добиться межсайтового скриптинга и выполнить в браузере пользователя произвольный JavaScript-код при переходе по ссылке (например, "https://JUNOS_IP/error.php?SERVER_NAME=<script>alert(0)</script>". Уязвимость может использоваться для перехвата параметров сеанса администратора, если атакующим удастся добиться открытия администратором специально оформленной ссылки.
  • CVE-2022-22243, СVE-2022-22244 - подстановка выражений XPATH через скрипты jsdm/ajax/wizards/setup/setup.php и /modules/monitor/interfaces/interface.php, позволяет непривилегированному аутентифицированному пользователю манипулировать сеансами администратора.
  • CVE-2022-22245 - отсутствие должной чистки последовательности ".." в путях, обрабатываемых в скрипте Upload.php, позволяет аутентифицированному пользователю загрузить свой PHP-файл в каталог, допускающий выполнение PHP-скриптов (например, передав путь "fileName=\..\..\..\..\www\dir\new\shell.php").
  • CVE-2022-22246 - возможность выполнения произвольного локального PHP-файла через манипуляции аутентифицированным пользователем со скриптом jrest.php, в котором внешние параметры используются для формирования имени файла, загружаемого функцией "require_once()" (например, "/jrest.php?payload=alol/lol/any\..\..\..\..\any\file")


  1. Главная ссылка к новости (https://octagon.net/blog/2022/...)
  2. OpenNews: Уязвимость в домашних маршрутизаторах, охватывающая 17 производителей
  3. OpenNews: В продуктах Juniper исправлены 22 уязвимости
  4. OpenNews: Возможность обхода проверки сертификатов в продуктах Juniper на базе JUNOS
  5. OpenNews: В межсетевых экранах Juniper выявлен бэкдор с функциями расшифровки трафика VPN
  6. OpenNews: Определён универсальный пароль для входа на межсетевые экраны Juniper ScreenOS
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/58010-juniper
Ключевые слова: juniper, junos
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (29) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, topin89 (ok), 21:11, 30/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    А вот если бы писали на расте... Вообще бы ничего не изменилось, ошибка в логике, а не в памяти
     
     
  • 2.2, Аноним (2), 21:14, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    тсс, не говори об этом растоманам. Ты же не скажешь ребенку, что Деда Мороза нет?
     
     
  • 3.7, Аноним (7), 22:14, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Дед Мороз самый безопасный на свете!!!!
     
  • 3.27, 1 (??), 10:34, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты гонишь ! Как это нет Деда Мороза ? O_o
     
  • 2.22, Аноним (22), 02:38, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Потому и писали на PHP а не Си, чтобы не было ошибки по-памяти. Которые суть 70% всех критических уязвимостей.

    Когда речь о 70% процентах, можно смело утверждать что Си-подобные языки перекатываются в ЛЕГАСИ-режим после появления альтернативы. А писатели на них в некрофилов, утят, или просто несмогших.

     
     
  • 3.24, Аноним (24), 07:04, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Которые суть 70% всех критических уязвимостей

    Как ни странно, но практически критическими оказываются оставшиеся 30%, потому что их на порядки проще эксплуатировать.

     
  • 2.31, АнонимкаРастуимка (?), 12:04, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не понял?
     

  • 1.3, Аноним (3), 21:48, 30/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > phar://

    Шо, опять?

     
     
  • 2.6, Аноним (6), 22:11, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Главное, чтобы починили не как некоторые, ну там типа if (useragent =~ /curl/) {return 403;}
     
     
  • 3.13, пох. (?), 22:57, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У этих некоторых в промышленных железках (а не в тех домашних недоразумениях в которых if curl)  хотя бы нет до сих пор php.

    Правда и им рекомендуют первым делом no ip http server / no ip http secure-server без всяких церемоний.
    (ну а у чего поприличней его и в принципе нет)

     
  • 2.12, пох. (?), 22:53, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не понимаю, что не так с моим каталогом?

    > mkdir phar:
    > cp -rp .config phar://
    > echo $?

    0

     

  • 1.10, penetrator (?), 22:34, 30/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    для топового сегмента такой шлак в качестве кода как-то даже слух режет
     
     
  • 2.11, Аноним (24), 22:48, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > для топового сегмента такой шлак

    Называть шлак топовым сегментом - как-то даже слух режет.

     

  • 1.14, ИмяХ (?), 22:58, 30/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >>fileName=\..\..\..\..\

    Подскажите, какой язык, защищает от уязвимостей, связанных с некорректными путями файлов?

     
     
  • 2.15, Аноним (24), 22:59, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Подскажите, какой язык ...

    Мозг!

     
     
  • 3.18, Без аргументов (?), 23:30, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да, понимание хотя бы принципа работы системы
     
  • 2.16, Аноним (16), 23:21, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Язык? Может библиотеки для языка все-таки?
     
     
  • 3.19, Аноним (19), 23:32, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Скорее ядра для ОС. Единственное решение это ОС без путей и ядро без подобной функциональности.
     
  • 2.17, Без аргументов (?), 23:29, 30/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    в Go изкоробки есть функция ServeFile, она проверяет эту ерунду. Но почему-то только она не возвращет ошибок (или я просто не разобрался как-то иначе?).
     
  • 2.20, Аноним (20), 01:51, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Язык политик безопасности SELinux.
     
     
  • 3.33, Аноним (33), 19:32, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >связанных с некорректными путями файлов

    Тогда уж AppArmor.

     

  • 1.21, Herrasim Muhmuh (?), 02:06, 31/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    А я всегда говорил, что тру-железяки только от Mikrotik.
     
     
  • 2.34, Аноним (33), 19:34, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Тру только те из них, на которые можно воодрузить OpenWRT. А так MikrotikOS та ещё дырень в безопасности.
     

  • 1.25, onanim (?), 10:04, 31/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    эта новость вернула мне мой 2007-ой
     
  • 1.26, valery_kolganov (ok), 10:32, 31/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "Пользователям оборудования Juniper рекомендовано установить обновление прошивки". Juniper ушел в свете санкций, обновления недоступны для пользователей из России.
     
     
  • 2.28, 1 (??), 10:36, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну значит новость была не для тебя.
     

  • 1.30, InuYasha (??), 11:58, 31/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    php, ajax на таких мегароторах... ну, гениально, чо. Ещё бы HTML5 и стриминг видео из консоли. ) Хотя, конечно, такое обычно сразу во внутренние сетки заворачивается, либо отключается вовсе.
     
  • 1.32, Атон (?), 18:09, 31/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А много Juniper выставлены вебинтерфейсом в публичную сеть?

    По умолчанию, всё управление сетевыми железками (telnet,ssh,web) убрано в приватный VLAN.

     
     
  • 2.35, Аноним (35), 20:49, 31/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Усилю: много Juniper выставлено С вебинтерфейсом? :-)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру