Big_Turk adlı üyeden alıntı: mesajı görüntüle
Açığın nedeni Setfrom methodunun escape edilmemesinden kaynaklanıyor. Yani ;

$message->setFrom($email_from, 'Attacker');

burada kullanılan mail adresini direk POST , GET yada Session vb kullanıcının erişebileceği bir yapıda kullanıyorsanız dışarıdan kod çalıştırmaya imkan veriyor. Zaten kod çalıştıktan sonra da shell yüklemesi yapmak zor değil.

En garanti yol class'ı güncellemek. bu açık çok uzun zamandır mevcuttu ve wordpress'in contact form vb eklentilerinde ciddi zararlar verilmiş.

Gerçekten bu kadar basit birşeyden kaynaklanıyorsa orada setfrom'a $email_from i girerken bir mail kontrolü yapmak mantıklı olacaktır:

preg_match("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+/i", $aaa, $bbb);
Hatta aklıma geldi de, bu daha iyi olur:

	preg_match("/[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)+/i", mysql_real_escape_string($aaa), $bbb);
Kodun çalıştığı test edilmiştir.