CVE-2017-3066
Adobe ColdFusion
2025-02-24
Adobe ColdFusion contains a deserialization vulnerability in the Apache BlazeDS library that allows for arbitrary code execution.
Технический анализ и план устранения
Суть уязвимости
CVE-2017-3066 представляет собой критическую уязвимость типа Insecure Deserialization (небезопасная десериализация) в библиотеке Apache BlazeDS, которая интегрирована в Adobe ColdFusion.
Проблема заключается в том, что механизм обработки AMF (Action Message Format) сообщений некорректно валидирует входные данные. Злоумышленник может отправить специально сформированный сериализованный объект через протокол AMF. При попытке сервера десериализовать этот объект происходит выполнение произвольного Java-кода в контексте системной учетной записи, под которой запущен ColdFusion. Это позволяет полностью скомпрометировать сервер без аутентификации.
Как исправить
Основным способом устранения является установка официальных обновлений безопасности от Adobe.
- Для ColdFusion (2016 release): Установите Update 4 или выше.
java -jar cf2016_all_levels_hotfix_004.jar
- Для ColdFusion 11: Установите Update 12 или выше.
java -jar cf11_all_levels_hotfix_012.jar
- Обновление через административную панель:
- Зайдите в ColdFusion Administrator.
- Перейдите в раздел Server Update -> Updates.
-
Нажмите Check for Updates, скачайте и установите последнее доступное обновление.
-
Проверка версии Java: Убедитесь, что ColdFusion использует актуальную версию JRE (Java Runtime Environment), так как старые версии содержат дополнительные векторы для гаджетов десериализации.
java -version
Временные меры
Если немедленное обновление невозможно, примените следующие защитные механизмы:
-
Блокировка AMF каналов: Ограничьте доступ к URL-адресам, которые обрабатывают AMF-трафик (обычно это
/messagebroker/amfили/flex2gateway/amf), на уровне WAF (Web Application Firewall) или обратного прокси (Nginx/IIS). -
Настройка глобального фильтра десериализации (для Java 8u121+): Добавьте системное свойство в конфигурацию запуска ColdFusion (
jvm.config), чтобы ограничить классы, разрешенные для десериализации.
-Djdk.serialFilter=!*
-
Изоляция процесса: Запустите службу ColdFusion от имени пользователя с минимальными привилегиями в системе (Service Account), чтобы ограничить ущерб в случае успешной эксплуатации.
-
Отключение неиспользуемых сервисов: Если ваше приложение не использует Flash/Flex интеграцию, полностью удалите или закомментируйте соответствующие сервлеты в файле
web.xml.