PHPMailer, uma das classes mais usadas para enviar e-mails a partir do PHP, tem uma vulnerabilidade séria em suas versões inferiores a 5.2.18. O pesquisador de segurança [Dawid Golunski] acaba de publicar, afirmando que o PHPMailer sofre de uma falha crítica que pode levar um invasor a conseguir a execução remota de código.
PHPMailer é usado por vários projetos open-source, entre eles são: WordPress, Drupal, 1CRM, SugarCRM, Yii e Joomla.
Uma correção já foi publicada pelo PHPMailer e todos os usuários devem atualizar suas programações.
Para desencadear esta vulnerabilidade (CVE-2016-10033), parece que o atacante só tem que fazer o aplicativo web enviar um e-mail usando a classe vulnerável PHPMailer. Dependendo do aplicativo em si, isso pode ser realizado de diferentes maneiras, como formulários de contato / feedback, formulários de registro, resets de e-mail de senha e assim por diante.
Após uma rápida análise diff, descobrimos que o código vulnerável parece estar nas seguintes linhas do class.phpmailer.php:
Versão 5.2.17
[php]
if (!empty($this->Sender)) {
$params = sprintf(‘-f%s’, $this->Sender);
}
if ($this->Sender != ” and !ini_get(‘safe_mode’)) {
$old_from = ini_get(‘sendmail_from’);
ini_set(‘sendmail_from’, $this->Sender);
}[/php]
Version 5.2.18
[php]if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {
$params = sprintf(‘-f%s’, escapeshellarg($this->Sender));
}
if (!empty($this->Sender) and !ini_get(‘safe_mode’) and $this->validateAddress($this->Sender)) {
$old_from = ini_get(‘sendmail_from’); ini_set(‘sendmail_from’, $this->Sender);
}[/php]
A partir do código acima, podemos ter uma idéia de onde o bug vem. O pesquisador Dawid Golunski afirma ter desenvolvido uma exploração de Execução Remota de Código (RCE) e que a publicará numa data posterior, para dar aos usuários tempo para atualizar seus sistemas.
Então … programadores, o que vocês estão esperando? Vá e atualize.