Объявление, на которое я ссылаюсь, было размещено по адресу:
http://legalhackers.com/advisories/PHPMailer-Exploit-Remote-Code-Exec-CVE-2016-10033-Vuln.html
Я использовал такой код на многих сайтах:
$mail = new PHPMailer(true);
$mail->SetFrom('info@mysite.com', 'My Site');
$mail->AddReplyTo( $contact_email, "$contact_name" );
$mail->Subject = $subject;
$mail->AltBody = $mail_text;
$mail->MsgHTML($mail_html);
$result = $mail->Send();
Безопасен ли я от этой уязвимости, потому что мой адрес отправителя жестко запрограммирован? Должен ли я беспокоиться об адресе ответа, который поступает от пользовательского ввода? Я проверяю его с помощью filter_var, но если я правильно понимаю, адрес отправителя может пройти проверку и все же внедрить код, поскольку технически разрешены пробелы в адресах электронной почты.
Да, вы в безопасности.
Как сказал Саммитч, вы никогда не должны использовать предоставленный пользователем адрес, так как это будет подделка и вы не пройдете проверку SPF. Это упоминается в документации по PHPMailer и во многих ответах по SO.
Других решений пока нет …