-------------------------------------------------------------------
Concrete5 <= 5.7.3.1 (sendmail) Remote Code Execution Vulnerability
-------------------------------------------------------------------
[-] Software Link:
https://www.concrete5.org/
[-] Affected Versions:
Version 5.7.3.1 and probably other versions.
[-] Vulnerability Description:
The vulnerable code is located in /concrete/controllers/single_page/dashboard/system/registration/open.php:
21. switch ($this->post('registration_type')) {
22. case "enabled":
23. Config::save('concrete.user.registration.enabled', true);
24. Config::save('concrete.user.registration.validate_email', false);
25. Config::save('concrete.user.registration.approval', false);
26. Config::save('concrete.user.registration.notification', $this->post('register_notification'));
27. Config::save(
28. 'concrete.user.registration.notification_email',
29. Loader::helper('security')->sanitizeString(
30. $this->post('register_notification_email')));
31. break;
User input passed through the "register_notification_email" POST parameter is not properly sanitized before
being stored into a configuration setting at lines 27-30 (the sanitizeString() method doesn?t check if it is
a valid email address). This value is used as a sender email address to send out a notification email when a
new user is being registered, and this is done using the PHP mail() function, specifically passing such value
to its fifth parameter. So, when sendmail is used to send out such an email, it is possible to alter the
command line and tell the sendmail program to log all the email traffic in an arbitrary file chosen by the
attacker, resulting in an arbitrary PHP code execution. This vulnerability is mitigated by the fact that it
can be exploited only by authenticated administrator users (even though it could be exploited via a Cross-Site
Request Forgery attack as well) and only if the email is being sent with sendmail.
[-] Solution:
Update to version 5.7.4 or later.
[-] Disclosure Timeline:
[05/05/2015] - Vulnerability details sent through HackerOne
[05/05/2015] - Vendor said a patch has been committed and will be available in the next version
[07/05/2015] - Version 5.7.4 released along with the patch for this vulnerability
[06/06/2015] - Vulnerability publicly disclosed on HackerOne
[11/06/2014] - CVE number requested
[11/06/2014] - Publication of this advisory
[-] CVE Reference:
The Common Vulnerabilities and Exposures project (cve.mitre.org) has not assigned a name to this vulnerability yet.
[-] Credits:
Vulnerability discovered by Egidio Romano of Minded Security.
[-] Original Advisory:
http://karmainsecurity.com/KIS-2015-01
[-] Other References:
https://hackerone.com/reports/59663