Исследователь из Германии Тобиас Медель (Tobias Mädel) обнаружил, что при соблюдении определенных условий серверы ProFTPD уязвимы перед удаленным исполнением кода и атаками на раскрытие информации. Корень проблемы кроется в баге модуля mod_copy, допускающем произвольное копирование файлов. Чаще всего данный модуль включен по умолчанию.
По информации Меделя, все версии ProFTPd до 1.3.6 включительно (проблема распространяется на 1.3.6 только в том случае, если дата компиляции раньше 17.07.19) имеют уязвимость в модуле mod_copy. Баг позволяет аутентифицированному пользователю (в том числе анонимному) копировать файлы, даже если он не имеет разрешения на запись. Такое поведение вызвано ошибкой в SITE CPFR и SITE CPTO, команды игнорируют denyall «Limit WRITE», что позволяет пользователю копировать файл в текущую папку, даже если у него нет таких прав.
Медель подчеркивает, что для реализации удаленного исполнения произвольного кода на практике потребуется соблюсти сразу ряд условий. Так, mod_copy должен быть включен, атакующему понадобится доступ к серверу (анонимная учетная запись или авторизация), на сервере должен присутствовать файл с PHP-кодом, но не использующий расширение PHP, и так далее.
Согласно статистике Shodan, в настоящее время в сети можно обнаружить как минимум 28 000 потенциально уязвимых серверов с анонимным доступом, и более миллиона серверов ProFTPD в целом.
Уязвимость получила идентификатор CVE-2019- 12815 (Debian, SUSE, Ubuntu) и связана со старым багом CVE-2015-3306, который позволял атакующему читать и записывать произвольные файлы при помощи SITE CPFR и SITE CPTO.
Пока проблема, по сути, остается неисправленной. Дело в том, что патч для проблемы уже написан и был задним числом добавлен в ProFTPD 1.3.6, однако новую исправленную версию разработчики пока не выпускали. Таким образом, если ваш пакет скомпилирован до 7.17.19, вы подвержены уязвимости. В таком случае можно либо отключить mod_copy, либо стоит озаботиться загрузкой и перекомпиляцией.