CVE-2023-36846
Juniper Junos OS
2023-11-13
Juniper Junos OS on SRX 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 user.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-36846 представляет собой критическую уязвимость в компоненте J-Web операционной системы Juniper Junos OS (серия SRX). Проблема заключается в отсутствии проверки аутентификации при обращении к скрипту user.php.
Неавторизованный злоумышленник может отправить специально сформированный HTTP-запрос, позволяющий загружать произвольные файлы в файловую систему устройства. Это приводит к нарушению целостности системы и, что наиболее опасно, позволяет создать цепочку атак (exploit chain) совместно с другими уязвимостями (например, CVE-2023-36845) для удаленного выполнения произвольного кода (RCE) с правами root.
Как исправить
Основным способом устранения является обновление Junos OS до исправленного релиза. Juniper Networks выпустила патчи для всех поддерживаемых веток.
- Проверьте текущую версию ОС:
show version
- Установите исправленную версию, соответствующую вашей ветке:
- Junos OS 20.2R3-S8
- 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 или полностью его отключить.
- Полное отключение сервиса J-Web (рекомендуется):
configure
delete system services web-management
commit
- Ограничение доступа к J-Web с помощью Firewall Filter (разрешить только доверенные IP-адреса управления):
set policy-options prefix-list MGMT_IPS 192.168.1.0/24
set firewall filter MGMT_ACL term ALLOW_MGMT from source-address MGMT_IPS
set firewall filter MGMT_ACL term ALLOW_MGMT from protocol tcp
set firewall filter MGMT_ACL term ALLOW_MGMT from destination-port [ 80 443 ]
set firewall filter MGMT_ACL term ALLOW_MGMT then accept
set firewall filter MGMT_ACL term DENY_ALL then discard
set interfaces fxp0 unit 0 family inet filter input MGMT_ACL
commit
- Отключение J-Web только на незащищенных (untrusted) интерфейсах:
Убедитесь, что команда
set system services web-managementпривязана только к внутренним интерфейсам или интерфейсу управления (fxp0).