CVE-2025-49113

Roundcube Webmail

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2026-02-20

Официальное описание

RoundCube Webmail contains a deserialization of untrusted data vulnerability that allows remote code execution by authenticated users because the _from parameter in a URL is not validated in program/actions/settings/upload.php.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость CVE-2025-49113 в Roundcube Webmail относится к классу Insecure Deserialization (небезопасная десериализация данных). Проблема локализована в скрипте program/actions/settings/upload.php. Параметр _from, передаваемый пользователем в URL, обрабатывается приложением без предварительной строгой валидации или очистки. Поскольку уязвимость требует аутентификации, легитимный или скомпрометированный пользователь может отправить специально сформированный HTTP-запрос. В этот запрос злоумышленник внедряет вредоносный сериализованный PHP-объект (payload) через параметр _from. Когда уязвимый код вызывает функцию десериализации (например, unserialize()) для этого параметра, PHP автоматически вызывает "магические методы" объекта (такие как __wakeup или __destruct). Это позволяет злоумышленнику выстроить цепочку вызовов (POP chain), которая в конечном итоге приводит к удаленному выполнению произвольного кода (RCE) с правами пользователя веб-сервера (например, www-data).

Как исправить

Наиболее надежным и правильным решением является обновление Roundcube Webmail до версии, содержащей официальный патч от разработчиков. В исправленных версиях небезопасная функция unserialize() обычно заменяется на безопасные альтернативы (например, json_decode) или внедряется строгая фильтрация входных данных. Создайте полную резервную копию директории с установленным Roundcube и дампа базы данных. Загрузите актуальный релиз с официального репозитория Roundcube. Распакуйте загруженный архив во временную директорию. Перейдите в распакованную директорию и запустите штатный скрипт обновления, указав путь к вашей текущей рабочей директории Roundcube:

bin/installto.sh /var/www/roundcube

Если установка производилась из официальных репозиториев операционной системы (например, Debian/Ubuntu), выполните обновление через пакетный менеджер:

apt-get update && apt-get install --only-upgrade roundcube roundcube-core

После обновления очистите кэш браузера и проверьте работоспособность почтового клиента.

Временные меры

Если оперативное обновление системы невозможно, необходимо применить компенсирующие меры (Virtual Patching) для защиты от эксплуатации. Настройте правила Web Application Firewall (WAF) для инспекции трафика, направленного к program/actions/settings/upload.php. Настройте WAF на блокировку запросов, если параметр _from содержит сигнатуры сериализованных PHP-объектов (например, регулярные выражения, ищущие O:[0-9]+: или a:[0-9]+:). Ограничьте доступ к уязвимому эндпоинту на уровне веб-сервера (Nginx/Apache), если функционал загрузки настроек временно не требуется бизнес-процессам. Пример правила для Nginx, которое блокирует запросы с признаками сериализации в параметре _from (добавляется в блок server):

location ~ /program/actions/settings/upload\.php$ {
    if ($arg__from ~* "(O:|a:)\d+:") {
        return 403;
    }
    fastcgi_pass unix:/var/run/php/php-fpm.sock;
    include fastcgi_params;
}

Настройте SIEM-систему или мониторинг логов веб-сервера на выявление аномального количества обращений к upload.php или наличия длинных, закодированных (Base64/URL-encode) строк в параметре _from.