CVE-2023-22952
SugarCRM Multiple Products
2023-02-02
Multiple SugarCRM products contain a remote code execution vulnerability in the EmailTemplates. Using a specially crafted request, custom PHP code can be injected through the EmailTemplates.
Технический анализ и план устранения
Суть уязвимости
CVE-2023-22952 представляет собой критическую уязвимость типа Remote Code Execution (RCE), возникающую из-за недостаточной фильтрации входных данных в модуле EmailTemplates.
Злоумышленник, имеющий доступ к приложению, может отправить специально сформированный HTTP-запрос, который позволяет внедрить произвольный PHP-код в файлы шаблонов электронных писем. Поскольку SugarCRM динамически обрабатывает эти шаблоны, внедренный код исполняется на стороне сервера с правами веб-сервиса. Это дает атакующему возможность полного захвата системы, кражи конфиденциальных данных и дальнейшего продвижения по сети.
Как исправить
Основным и наиболее надежным способом устранения уязвимости является обновление SugarCRM до версий, в которых данная проблема была официально исправлена вендором.
- Определите текущую версию вашей системы.
- Выполните обновление до одной из следующих версий (или более новых):
- Sugar Sell, Serve, Enterprise, Professional, Community Edition: 12.0.2
- Sugar Sell, Serve, Enterprise (версии с краткосрочной поддержкой): 11.0.5
Процесс обновления через консоль (SugarCRM CLI):
./sugar_update_tool.php --source /path/to/sugar/ --patch /path/to/upgrade_package.zip
После обновления необходимо очистить кэш системы:
rm -rf cache/modules/EmailTemplates/*
Временные меры
Если немедленное обновление невозможно, необходимо применить следующие защитные меры для снижения риска эксплуатации:
-
Ограничение прав доступа: Минимизируйте количество пользователей, имеющих права на создание и редактирование шаблонов в модуле
EmailTemplates. -
Настройка Web Application Firewall (WAF): Настройте правила фильтрации для блокировки подозрительных POST-запросов к модулю EmailTemplates, содержащих PHP-теги или функции исполнения кода (например,
<?php,system(),eval(),base64_decode).
Пример правила для Nginx (запрет PHP-тегов в теле запроса):
if ($request_body ~* "(<\?php|eval\(|base64_decode)") { return 403; }
- Усиление безопасности PHP:
Отключите опасные функции в конфигурационном файле
php.ini:
disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source,eval
- Мониторинг логов:
Настройте оповещения на поиск аномальной активности в логах веб-сервера, связанных с путем
index.php?module=EmailTemplates.