CVE-2023-36847
Juniper Junos OS
2023-11-13
Juniper Junos OS on EX Series contains a missing authentication for critical function vulnerability that allows an unauthenticated, network-based attacker to cause limited impact to the file system integrity. With a specific request to installAppPackage.php that doesn't require authentication, an attacker is able to upload arbitrary files via J-Web, leading to a loss of integrity for a certain part of the file system, which may allow chaining to other vulnerabilities.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-36847 представляет собой критическую уязвимость в компоненте J-Web операционной системы Juniper Junos OS (серия EX). Проблема заключается в отсутствии проверки аутентификации для критически важной функции в скрипте installAppPackage.php.
Неавторизованный злоумышленник, имеющий сетевой доступ к интерфейсу управления J-Web, может отправить специально сформированный HTTP-запрос. Это позволяет загружать произвольные файлы в файловую систему устройства. Последствием является нарушение целостности системы, что зачастую используется как первый этап в цепочке атак для получения полного контроля над устройством (RCE).
Как исправить
Основным способом устранения уязвимости является обновление Junos OS до исправленной версии, в которой реализована надлежащая проверка прав доступа.
Необходимо установить одну из следующих версий (или более новую): * 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-S1 * Junos OS 22.4R2-S1, 22.4R3 * Junos OS 23.2R1-S1, 23.2R2
Команда для обновления через CLI:
request system software add /var/tmp/junos-install-package.tgz reboot
Временные меры
Если немедленное обновление невозможно, необходимо применить защитные меры для снижения риска эксплуатации.
- Полное отключение интерфейса J-Web (наиболее эффективный метод):
delete system services web-management
commit
- Ограничение доступа к J-Web с помощью Firewall Filter (разрешить доступ только с доверенных IP-адресов администраторов):
set policy-options prefix-list TRUSTED_ADMINS 192.168.1.0/24
set firewall filter MGMT_ACL term ALLOW_HTTP from source-address TRUSTED_ADMINS
set firewall filter MGMT_ACL term ALLOW_HTTP from protocol tcp
set firewall filter MGMT_ACL term ALLOW_HTTP from destination-port [ 80 443 ]
set firewall filter MGMT_ACL term ALLOW_HTTP then accept
set firewall filter MGMT_ACL term DENY_JWEB from protocol tcp
set firewall filter MGMT_ACL term DENY_JWEB from destination-port [ 80 443 ]
set firewall filter MGMT_ACL term DENY_JWEB then discard
set interfaces fxp0 unit 0 family inet filter input MGMT_ACL
- Отключение только HTTP/HTTPS сервисов, если они не используются для управления:
set system services web-management http disable
set system services web-management https disable