CVE-2020-12641
Roundcube Roundcube Webmail
2023-06-22
Roundcube Webmail contains an remote code execution vulnerability that allows attackers to execute code via shell metacharacters in a configuration setting for im_convert_path or im_identify_path.
Технический анализ и план устранения
Суть уязвимости
CVE-2020-12641 — это критическая уязвимость типа Remote Code Execution (RCE) в Roundcube Webmail до версии 1.4.4. Проблема связана с недостаточной фильтрацией входных данных в конфигурационных параметрах im_convert_path и im_identify_path.
Атакующий с правами администратора (или имеющий доступ к изменению конфигурации) может внедрить метасимволы оболочки (shell metacharacters) в пути к бинарным файлам ImageMagick. Поскольку Roundcube использует эти пути для вызова системных команд через функции типа popen() или exec(), это позволяет выполнить произвольный вредоносный код на сервере от имени пользователя, под которым запущен веб-сервер (например, www-data).
Как исправить
Основным способом устранения уязвимости является обновление Roundcube Webmail до стабильной версии, в которой была внедрена строгая валидация путей.
- Создайте резервную копию базы данных и файлов приложения:
tar -czvf roundcube_backup.tar.gz /var/www/roundcube
-
Скачайте последнюю стабильную версию Roundcube (минимум 1.4.4, рекомендуется актуальная ветка 1.4.x, 1.5.x или 1.6.x) с официального сайта или репозитория GitHub.
-
Выполните скрипт обновления из директории с новой версией:
./bin/installto.sh /var/www/roundcube
- Если вы используете установку через пакетный менеджер (например, в Debian/Ubuntu), выполните обновление системы:
apt update && apt upgrade roundcube
Временные меры
Если немедленное обновление невозможно, примените следующие защитные меры:
- Проверьте файл конфигурации
config/config.inc.phpи убедитесь, что параметрыim_convert_pathиim_identify_pathсодержат только абсолютные пути к доверенным бинарным файлам без лишних символов:
$config['im_convert_path'] = '/usr/bin/convert';
$config['im_identify_path'] = '/usr/bin/identify';
- Если функционал обработки изображений (плагин
filesystem_attachmentsили предпросмотр) не является критически важным, временно отключите использование ImageMagick, установив пустые значения:
$config['im_convert_path'] = null;
$config['im_identify_path'] = null;
- Ограничьте права на запись в файл конфигурации
config.inc.php, чтобы веб-сервер не мог изменять его самостоятельно:
chown root:root /var/www/roundcube/config/config.inc.php
chmod 644 /var/www/roundcube/config/config.inc.php
- Настройте ограничения PHP
open_basedirвphp.ini, чтобы запретить интерпретатору обращаться к системным директориям вне веб-корня и стандартных путей библиотек.