Новости и события » Hi-Tech » Уязвимости в PHP и PHPMailer

Уязвимости в PHP и PHPMailer

В опубликованных на днях корректирующих обновлениях PHP 5.6.39, 7.0.33, 7.1.25 и 7.2.13 устранена неприятная уязвимость (CVE-2018-19518) в штатном PHP-дополнении IMAP, выявленная еще в октябре. Уязвимость позволяет атаковать web-приложения для работы с электронной почтой или обойти системные ограничения доступа к функциям, выставляемые через опцию disable_functions в php.ini.

В случае запрета вызовов, подобных exec, system, shell_exec и passthru, уязвимость дает возможность выполнить произвольный shell-код, в случае когда злоумышленники могут загрузить свой PHP-код на сервер (например, для продолжения атаки после эксплуатации уязвимостей в плагинах для загрузки пользовательских файлов). Уязвимость также может применяться для атаки на webmail-клиенты, позволяющие установить произвольное имя imap-сервера и передающих его в вызов imap_open без дополительной проверки.

Суть проблемы в том, что функция imap_open, через которую осуществляется открытие соединения с IMAP-сервером, позволяет указать дополнительные параметры для обращения к почтовому ящику по сети. Возможно обращение к почтовому ящику на удаленном хосте не только с использованием протокола IMAP, но и по SSH (вызывается команда rsh, но в большинстве дистрибутивов она перенаправлена на ssh), которому можно передать дополнительные параметры, в том числе через указание опции "-oProxyCommand=" можно определить команду для запуска прокси. Вместо прокси можно указать любой код, который будет выполнен при вызове функции imap_open. Для блокирования уязвимости в новых выпусках по умолчанию отключено обращение imap_open по rsh/ssh (imap.enable_insecure_rsh=false).

Концептуальный прототип эксплоита:

$server = "x -oProxyCommand=echo&92;tZWNobyAnMTIzNDU2Nzg5MCc+L3RtcC90ZXN0MDAwMQo=|base64&92;t-d|sh}"; imap_open('{'.$server.':143/imap}INBOX', '', '') or die("&92;n&92;nError: ".imap_last_error);

Кроме того, раскрыты сведения об уязвимости (CVE-2018-19296) в PHPMailer, популярной библиотеке для организации отправки электронный писем из приложений на языке PHP, число пользователей которой оценивается в 9 миллионов. Уязвимость позволяет организовать выполнение кода через подстановку ссылки на phar-файл в составе пути, например, при отправке письма с вложением. Устраняющее проблему исправление включено в состав релиза PHPMailer 6.0.6.

Полученный путь проверяется при помощи функции file_exists, которая автоматически выполняет десериализацию метаданных из файлов Phar (PHP Archive), что позволяет применить технику атаки "Phar deserialization". Организовав загрузку специально оформленного Phar-файла под видом вложения, злоумышленник может добиться выполнения своего кода на сервере. Так как функция file_exists определяет MIME-тип по содержимому, а не по расширению, возможна передача phar-файла под видом картинки (напирмер, phar-файл будет разобран, если его передать как evil.jpg). Похожая уязвимость недавно была выявлена в phpBB.


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх