Osclass <= 3.4.2 (contact.php) Unrestricted File Upload Vulnerability
• Software Link:
• Affected Versions:
Version 3.4.2 and probably prior versions.
• Vulnerability Description:
The vulnerable code is located in the /oc-includes/osclass/controller/contact.php script:
97if( osc_contact_attachment() ) {
98 $attachment = Params::getFiles('attachment');
99 if(isset($attachment['tmp_name'])) {
100 $resourceName = $attachment['name'];
101 $tmpName = $attachment['tmp_name'];
102 $resourceType = $attachment['type'];
103 $path = osc_uploads_path() . time() . '_' . $resourceName;
104 if( !is_writable(osc_uploads_path()) ) {
105 osc_add_flash_error_message( _m('There have been some errors sending the message'));
106 $this->redirectTo( osc_contact_url() );
107 }
108
109 if( !move_uploaded_file($tmpName, $path) ) {
110 unset($path);
111 }
112 }
113}
The vulnerability exists because of the CWebContact::doModel()
method not properly verifying the extension of uploaded files. This could be exploited by unauthenticated attackers to upload and execute arbitrary PHP code. Successful exploitation of this vulnerability requires the attachment option for the contact page to be enabled (disabled by default).
• Solution:
Update to version 3.4.3 or later.
• Disclosure Timeline:
[30/09/2014] – Vendor notified
[30/09/2014] – Vendor response
[09/10/2014] – Version 3.4.3 released: http://blog.osclass.org/2014/10/09/osclass-3-4-3
[09/10/2014] – CVE number requested
[11/10/2014] – CVE number assigned
[31/12/2014] – Public disclosure
• CVE Reference:
The Common Vulnerabilities and Exposures project (cve.mitre.org) has assigned the name CVE-2014-8085 to this vulnerability.
• Credits:
Vulnerability discovered by Egidio Romano.