PT-2011-48: Множественные уязвимости в AtMail Уязвимое ПОПочтовый веб-интерфейс AtMail Версия: 1.04 и нижеСсылка: http://atmail.org/Рейтинг опасностиУровень опасности: Высокий Воздействие: Множественные уязвимости Вектор атаки: УдаленныйCVSS v2: Base Score: 9.0 Vector: (AV:N/AC:L/Au:S/C:C/I:C/A:C) CVE: отсутствуетОписание программыAtmail - почтовый веб-интерфейс с открытым исходным кодом. Описание уязвимостиИсследовательский центр Positive Research компании Positive Technologies обнаружил множественные уязвимости в почтовом веб-интерфейсе AtMail.1. Загрузка произвольных файлов В системе предусмотрена возможность загрузки файлов (прикрепленных к письмам вложений). Расширения загружаемых файлов не проверяются; таким образом, возможна загрузка произвольного файла, в том числе с расширением .php. В результате загрузки файл будет доступен по адресу: https://localhost/tmp/username@host.com/username@host.com-string-PositiveShell.php2. Обход каталогов (Path Traversal) Уязвимость в файле: /compose.php Уязвимый фрагмент кода: $var['unique'] = preg_replace('/\.\.\//', '', $var['unique']); Из параметра $var['unique'] удаляется строка "../", но удаление происходит не рекурсивно. Таким образом, если параметр будет содержать строку "..././", то после удаления останется строка "../". В результате возможно проведение атаки "обход каталогов" (Path Traversal). Пример эксплуатации: https://localhost/compose.php? func=renameattach&unique=/..././..././..././..././..././..././..././..././..././..././..././.../ ./tmp/positive.test%00&Attachment[]=/../../../../../../../../../etc/passwd3. Копирование произвольных файлов В системе предусмотрена возможность копирования прикрепляемых файлов, при этом не реализована проверка имени копируемого файла, что позволяет скопировать произвольный файл. Имя создаваемого файла не проверяется на наличие специальных символов (например, null-байт), что позволяет создать файл с произвольным расширением. Кроме того, используя уязвимость "обход каталогов", злоумышленник может создать файл в произвольном каталоге. Уязвимость в файлах: /compose.php /libs/Atmail/SendMsg.php (методы "renameattach" и "copyFile") Пример эксплуатации: https://localhost/compose.php?func=renameattach&unique=1.txt%00&Attachment[] =/../../../../../../../../../etc/passwd После этого файл будет доступен по адресу: https://localhost/tmp/username@host.com/username@host.com-1.txt4. Чтение произвольных файлов Проверка имени читаемого файла осуществляется некорректно - возможен обход механизма фильтрации. Это позволяет злоумышленникам прочитать произвольные файлы. Уязвимость в файле: mime.php Уязвимый фрагмент кода: $var['src'] = rawurldecode($_REQUEST['file']); $var['src'] = preg_replace('/^.+[\\\\\\/]/', '', $var['src']); // Don't allow to go down a dir, sanity check Если в имени файла содержится символ "/", то все символы до него будут удалены. Однако в регулярном выражении не используется модификатор "s", символ %0a будет воспринят как два символа (переход на новую строку + возврат каретки). Управляющий символ "." в регулярном выражении без модификатора "s" может заменять только 1 символ; таким образом, проверка будет осуществляться до символа %0a. Пример эксплуатации: https://localhost/mime.php?file=%0A/../../../../../../../../../etc/passwd&name=positive.html5. Раскрытие важных данных Файл info.php вызывает функцию phpinfo(). Функция phpinfo() отображает информацию о конфигурации системы. https://localhost/install/info.phpРешениеУстановите последнюю версию приложенияСтатус уведомления 06.12.2011 - Производитель уведомлен 06.02.2012 - Детали уязвимости отправлены в CERT 26.03.2012 - Производитель выпустил исправление 26.03.2012 - Публикация уязвимости БлагодарностиУязвимость обнаружил Сергей Щербель (Исследовательcкий центр Positive Research компании Positive Technologies)Ссылкиhttp://www.securitylab.ru/lab/PT-2011-48 http://www.kb.cert.org/vuls/id/743555 Список отчетов о ранее обнаруженных уязвимостях Positive Research: http://www.ptsecurity.ru/lab/advisory/ http://www.securitylab.ru/lab/