CVE-2023-36844
Juniper Junos OS
2023-11-13
Juniper Junos OS on EX Series contains a PHP external variable modification vulnerability that allows an unauthenticated, network-based attacker to control certain, important environment variables. Using a crafted request an attacker is able to modify certain PHP environment variables, leading to partial loss of integrity, which may allow chaining to other vulnerabilities.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-36844 представляет собой критическую уязвимость в J-Web интерфейсе операционной системы Juniper Junos OS (серия EX). Проблема связана с небезопасной обработкой внешних переменных PHP, что позволяет неавторизованному злоумышленнику удаленно изменять критические переменные окружения.
Основная опасность заключается в возможности манипуляции средой исполнения PHP через специально сформированные HTTP-запросы. Это приводит к частичной потере целостности системы и позволяет использовать данную уязвимость как начальный вектор в цепочке атак (exploit chain) для достижения удаленного выполнения произвольного кода (RCE) в контексте веб-сервера.
Как исправить
Основным способом устранения уязвимости является обновление Junos OS до фиксированного релиза. Juniper Networks выпустила исправления для всех затронутых веток программного обеспечения.
Необходимо установить одну из следующих версий (или более новую): * Junos OS 20.4R3-S8 * Junos OS 21.2R3-S6 * Junos OS 21.3R3-S5 * Junos OS 21.4R3-S5 * Junos OS 22.1R3-S4 * Junos OS 22.2R3-S2 * Junos OS 22.3R2-S2, 22.3R3 * Junos OS 22.4R2-S1, 22.4R3 * Junos OS 23.2R1-S1, 23.2R2
Команда для установки обновления из CLI:
request system software add /var/tmp/junos-install-package-name.tgz reboot
Временные меры
Если немедленное обновление системы невозможно, необходимо применить защитные меры для снижения риска эксплуатации.
- Полное отключение интерфейса J-Web (рекомендуемый метод):
delete system services web-management http
delete system services web-management https
commit
- Ограничение доступа к J-Web с помощью политик межсетевого экрана (Lo0), разрешив подключения только с доверенных административных IP-адресов:
set policy-options prefix-list TRUSTED_ADMINS 10.0.0.0/24
set firewall family inet filter MGMT_ACL term ALLOW_HTTP from source-prefix-list TRUSTED_ADMINS
set firewall family inet filter MGMT_ACL term ALLOW_HTTP from protocol tcp
set firewall family inet filter MGMT_ACL term ALLOW_HTTP from destination-port 80
set firewall family inet filter MGMT_ACL term ALLOW_HTTP from destination-port 443
set firewall family inet filter MGMT_ACL term ALLOW_HTTP then accept
set firewall family inet filter MGMT_ACL term RESTRICT_JWEB from protocol tcp
set firewall family inet filter MGMT_ACL term RESTRICT_JWEB from destination-port 80
set firewall family inet filter MGMT_ACL term RESTRICT_JWEB from destination-port 443
set firewall family inet filter MGMT_ACL term RESTRICT_JWEB then discard
- Применение фильтра на интерфейс Loopback:
set interfaces lo0 unit 0 family inet filter input MGMT_ACL
commit