CVE-2015-4852
Oracle WebLogic Server
2021-11-03
Oracle WebLogic Server contains a deserialization of untrusted data vulnerability within Apache Commons, which can allow for for remote code execution.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (CVE-2015-4852) в Oracle WebLogic Server позволяет удаленному злоумышленнику выполнить произвольный код на сервере. Атака возможна через протокол T3 (порт по умолчанию 7001) или IIOP (порт по умолчанию 7002). Злоумышленник отправляет специально сформированную сериализованную Java-объект в запросе к серверу. Уязвимый компонент Apache Commons Collections в процессе десериализации этого объекта выполняет вредоносный код.
Как исправить
Установите официальный патч от Oracle. Патч зависит от версии вашего WebLogic Server.
-
Определите точную версию WebLogic Server. Выполните команду в каталоге установки сервера:
bash cd /путь/к/weblogic java -cp lib/weblogic.jar weblogic.version -
Установите соответствующий патч (Critical Patch Update - CPU):
- Для версий 10.3.6.0: Установите патч p22248372_1036_Generic (входит в состав CPU за октябрь 2015).
- Для версий 12.1.3.0: Установите патч p22248372_1213_Generic (входит в состав CPU за октябрь 2015).
- Для версий 12.2.1.0: Установите патч p22248372_1221_Generic (входит в состав CPU за октябрь 2015).
Патчи можно скачать с официального портала поддержки Oracle (My Oracle Support). Для установки используйте утилиту
opatch:bash cd /путь/к/патчу $ORACLE_HOME/OPatch/opatch apply -
После установки патча перезапустите все управляемые серверы и административный сервер.
Временное решение
Если немедленная установка патча невозможна, выполните следующие действия:
-
Ограничьте доступ к протоколу T3:
- В консоли администратора WebLogic (
http://<админ-сервер>:7001/console) перейдите в раздел Environment -> Servers -> [Имя_сервера] -> Configuration -> Protocols -> General. - В поле "Listen Port Enabled" снимите галочку для протокола T3.
- ИЛИ настройте сетевой фильтр (firewall) на уровне ОС, чтобы блокировать входящие соединения на порты T3 (по умолчанию 7001) и IIOP (по умолчанию 7002) для всех IP-адресов, кроме доверенных (например, адресов балансировщика нагрузки или административных хостов).
- В консоли администратора WebLogic (
-
Используйте правила в WAF (Web Application Firewall): Настройте правило для блокировки HTTP-запросов, содержащих в теле характерные для эксплуатации этой уязвимости последовательности, например, сигнатуры классов
InvokerTransformerилиTransformermapиз библиотеки Commons Collections. -
Отключите десериализацию по протоколу T3 (наиболее эффективно): Создайте файл
weblogic.xmlв каталогеWEB-INFвашего приложения или отредактируйте существующий, добавив следующий фильтр:xml <container-descriptor> <filter> <filter-name>SerializationFilter</filter-name> <filter-class>weblogic.servlet.internal.ServerSerializationFilter</filter-class> </filter> <filter-mapping> <filter-name>SerializationFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </container-descriptor>Это включит встроенный фильтр десериализации WebLogic.