CVE-2017-3506
Oracle WebLogic Server
2024-06-03
Oracle WebLogic Server, a product within the Fusion Middleware suite, contains an OS command injection vulnerability that allows an attacker to execute arbitrary code via a specially crafted HTTP request that includes a malicious XML document.
Технический анализ и план устранения
Суть уязвимости
CVE-2017-3506 — это критическая уязвимость в компоненте WLS Security сервера Oracle WebLogic. Проблема связана с небезопасной десериализацией XML-данных через интерфейс WorkContextXmlInputAdapter.
Злоумышленник может отправить специально сформированный HTTP-запрос, содержащий вредоносный XML-документ (использующий теги <object>, <void>, <array>), на эндпоинты веб-сервисов (например, /wls-wsat/CoordinatorPortType). Поскольку сервер не выполняет надлежащую проверку входных данных перед их обработкой классом XMLDecoder, это приводит к возможности удаленного выполнения произвольных команд ОС (RCE) с правами пользователя, от имени которого запущен WebLogic.
Как исправить
Основным способом устранения является установка официального патча от Oracle (Patch Set Update — PSU).
- Определите текущую версию WebLogic и установленные патчи:
java weblogic.version
-
Скачайте соответствующее обновление безопасности из Oracle Critical Patch Update (CPU) за апрель 2017 года или более позднее.
-
Остановите все экземпляры WebLogic (AdminServer и Managed Servers).
-
Используйте утилиту
OPatchдля применения исправления:
export ORACLE_HOME=/path/to/your/oracle_home
export PATH=$ORACLE_HOME/OPatch:$PATH
opatch apply
- Запустите серверы и проверьте логи на отсутствие ошибок инициализации.
Временные меры
Если немедленная установка патча невозможна, примените следующие защитные механизмы:
-
Ограничьте доступ к уязвимым URL-адресам (например,
/wls-wsat/*) с помощью внешнего межсетевого экрана (WAF) или настроек HTTP-сервера (Apache/NGINX), проксирующего запросы. -
Настройте правила фильтрации на уровне WebLogic Connection Filter, чтобы разрешить доступ к порту администрирования только с доверенных IP-адресов.
-
Удалите или переименуйте файл
wls-wsat.war, если функциональность веб-сервисов не используется (требуется перезагрузка):
rm $DOMAIN_HOME/servers/AdminServer/tmp/_WL_internal/wls-wsat.war
- Внедрите кастомный фильтр для блокировки входящих XML-запросов, содержащих опасные теги, такие как
<object>,<void>или<class>.