Osclass <= 3.4.2 (contact.php) Unrestricted File Upload Vulnerability

http://osclass.org

• 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.