CVE-2020-14644
Oracle WebLogic Server
2024-09-18
Oracle WebLogic Server, a product within the Fusion Middleware suite, contains a deserialization vulnerability. Unauthenticated attackers with network access via T3 or IIOP can exploit this vulnerability to achieve remote code execution.
Технический анализ и план устранения
Суть уязвимости
CVE-2020-14644 представляет собой критическую уязвимость удаленного выполнения кода (RCE) в компоненте Core Service сервера Oracle WebLogic. Проблема связана с небезопасной десериализацией данных, передаваемых через протоколы T3 и IIOP.
Злоумышленник, имеющий сетевой доступ к порту прослушивания WebLogic (по умолчанию 7001), может отправить специально сформированный сериализованный объект. При обработке этого объекта сервер выполняет произвольный код в контексте безопасности процесса WebLogic без необходимости предварительной аутентификации. Уязвимость является частью цепочки обхода предыдущих паттернов фильтрации (JEP 290).
Как исправить
Основным способом устранения является установка официального пакета обновлений безопасности (Critical Patch Update — CPU) от Oracle.
- Определите версию установленного WebLogic Server:
java weblogic.version
-
Скачайте соответствующий патч (Patch Set Update, PSU) из личного кабинета My Oracle Support (MOS). Для данной уязвимости требуются обновления от июля 2020 года или более поздние.
-
Остановите все экземпляры WebLogic (AdminServer и Managed Servers) и Node Manager.
-
Примените патч с помощью утилиты OPatch:
opatch apply
- Запустите серверы и проверьте логи на отсутствие ошибок инициализации.
Временные меры
Если немедленная установка патча невозможна, необходимо ограничить векторы атаки на сетевом уровне и уровне конфигурации протоколов.
- Настройте фильтрацию соединений для протокола T3, разрешив доступ только доверенным IP-адресам. В консоли администрирования:
- Перейдите в Environment -> Servers.
- Выберите нужный сервер -> Protocols -> Channels.
- Создайте или измените сетевой фильтр (Connection Filter), указав:
weblogic.security.net.ConnectionFilterImpl
- Настройте правила фильтрации в поле Connection Filter Rules, разрешая доступ только административным узлам:
127.0.0.1 * * allow t3 t3s
<TRUSTED_IP> * * allow t3 t3s
0.0.0.0/0 * * deny t3 t3s
-
Если протоколы T3 и IIOP не используются для взаимодействия между внешними клиентами и сервером, заблокируйте соответствующие порты на внешнем межсетевом экране (Firewall).
-
Отключите протокол IIOP, если он не требуется для работы приложений:
- В консоли администрирования: Environment -> Servers -> [Server Name] -> Protocols -> IIOP.
- Снимите галочку с пункта Enable IIOP.
- Перезагрузите сервер.