CVE-2018-2628

Oracle WebLogic Server

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-09-08

Официальное описание

Oracle WebLogic Server contains an unspecified vulnerability which can allow an unauthenticated attacker with T3 network access to compromise the server.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2018-2628 — это критическая уязвимость удаленного выполнения кода (RCE) в компоненте Oracle WebLogic Server. Проблема связана с небезопасной десериализацией данных, передаваемых через протокол T3.

Злоумышленник может отправить специально сформированный запрос по протоколу T3 на порт прослушивания WebLogic (по умолчанию 7001). Поскольку сервер некорректно фильтрует входящие объекты, это позволяет неавторизованному пользователю выполнить произвольные команды в контексте безопасности процесса WebLogic. Уязвимость имеет оценку 9.8 по шкале CVSS v3.

Как исправить

Основным способом устранения является установка актуальных обновлений безопасности от Oracle (Critical Patch Update — CPU).

  1. Определите версию вашего Oracle WebLogic Server.
  2. Скачайте соответствующий патч с портала My Oracle Support (MOS). Для данной уязвимости это патчи от апреля 2018 года и новее.
  3. Используйте утилиту OPatch для применения исправления.

Пример команды для проверки версии и установленных патчей:

$ORACLE_HOME/OPatch/opatch lsinventory

Пример применения патча (после перехода в директорию с распакованным патчем):

$ORACLE_HOME/OPatch/opatch apply

  1. После установки патча необходимо перезапустить все экземпляры WebLogic (AdminServer и Managed Servers).

Временные меры

Если немедленная установка патча невозможна, необходимо ограничить доступ к протоколу T3 с помощью правил фильтрации соединений.

1. Настройка Connection Filter в консоли администрирования:

Перейдите в: Security Realms -> myrealm -> Providers -> DefaultAuthenticator. Затем в настройки домена: Environment -> Servers -> [Имя сервера] -> Protocols -> Channels. Или глобально: Environment -> Servers -> [Имя сервера] -> Protocols -> General.

В поле Connection Filter введите:

weblogic.security.net.ConnectionFilterImpl

В поле Connection Filter Rules добавьте правила, разрешающие T3 только доверенным IP-адресам и запрещающие остальным:

127.0.0.1 * * allow t3 t3s
<TRUSTED_IP> * * allow t3 t3s
0.0.0.0/0 * * deny t3 t3s

2. Блокировка порта на сетевом уровне:

Если внешним узлам не требуется доступ к консоли управления или T3-сервисам, заблокируйте входящий трафик на порт 7001 (или другой порт прослушивания) на внешнем Firewall или с помощью iptables:

iptables -A INPUT -p tcp --dport 7001 -m string --algo bm --string "t3" -j DROP

Примечание: Использование Connection Filter является более надежным методом внутри самого приложения.