У Roundcube пропатчена вразливість, пов’язана з функцією PHP mail()
Дослідники виявили критичну вразливість у поштовому клієнті з відкритим кодом Roundcube. Вона дозволяє виконати довільні команди на системі, просто надіславши електронного листа.
Нестача була виявлена фірмою RIPS Technologies і пов'язана з функцією PHP mail(), яка використовується для надсилання електронної пошти. Під час виклику цієї функції PHP виконує програму командного рядка sendmail.
Проблема полягає в тому, що введення користувача не обробляється належним чином в п'ятому параметрі функції mail(). Це дозволяє зловмиснику передавати довільні аргументи. Про цю вразливість було відомо вже більше двох років, проте розробники Roundcube змарнували її.
За словами RIPS, зловмисник може створити шкідливий PHP-файл у кореневому каталозі веб-системи, виконавши Sendmail з опцією -X, яка використовується для логування всього поштового трафік у спеціальному файлі. Такий PHP-файл може дозволити хакеру виконувати команди та проводити різні махінації, наприклад, читання електронної пошти або отримання доступу до інших систем мережі.
RIPS пояснюють, що пролом може бути використаний хакером, який має доступ до цільової системи і може надсилати електронну пошту зі скомпрометованої машини. Після отримання доступу, зловмисник може використовувати пролом, ввівши спеціальний код у полі "Від".
Є кілька умов, які мають бути дотримані для того, щоб уразливість спрацювала. По-перше, Roundcube має бути налаштований використання функції mail(), по-друге, функція mail() має бути налаштована використання sendmail. Крім того, у PHP має бути відключений safe_mode і зловмисник повинен знати абсолютний шлях до кореневої папки.
Проте такі конфігурації за замовчуваннямдалеко не рідкість і експерти вважають, що існують десятки чи сотні тисяч уразливих систем. Roundcube був завантажений з сайту SourceForge більш ніж 260 000 разів тільки в 2016 році.
З випуском версій Roundcube 1.2.3 та 1.1.7 проблема була вирішена.