lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <54A43F77.9050609@karmainsecurity.com>
Date: Wed, 31 Dec 2014 19:24:55 +0100
From: Egidio Romano <research@...mainsecurity.com>
To: bugtraq@...urityfocus.com, fulldisclosure@...lists.org
Subject: [FD] [KIS-2014-15] Osclass <= 3.4.2 (ajax.php) Local File Inclusion
	Vulnerability

--------------------------------------------------------------
Osclass <= 3.4.2 (ajax.php) Local File Inclusion Vulnerability
--------------------------------------------------------------


[-] Software Link:

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/ajax.php script:

225.	     case 'custom': // Execute via AJAX custom file
226.	         if(Params::existParam('route')) {
227.	             $routes = Rewrite::newInstance()->getRoutes();
228.	             $rid = Params::getParam('route');
229.	             $file = '../';
230.	             if(isset($routes[$rid]) && isset($routes[$rid]['file'])) {
231.	                 $file = $routes[$rid]['file'];
232.	             }
233.	         } else {
234.	             // DEPRECATED: Disclosed path in URL is deprecated, use routes instead
235.	             // This will be REMOVED in 3.4
236.	             $file = Params::getParam('ajaxfile');
237.	         }
238.	
239.	         if($file == '') {
240.	             echo json_encode(array('error' => 'no action defined'));
241.	             break;
242.	         }
243.	
244.	         // valid file?
245.	         if( stripos($file, '../') !== false  || stripos($file, '/admin/') !== false ) ...
246.	             echo json_encode(array('error' => 'no valid ajaxFile'));
247.	             break;
248.	         }
249.	
250.	         if( !file_exists(osc_plugins_path() . $file) ) {
251.	             echo json_encode(array('error' => "ajaxFile doesn't exist"));
252.	             break;
253.	         }
254.	
255.	         require_once osc_plugins_path() . $file;

User input passed through the "ajaxfile" request parameter when handling a "custom" action within
the AJAX interface is not properly sanitized being used in a call to the "require_once()" function
at line 255. This can be exploited to include arbitrary local files and execute arbitrary PHP code
when the application is running on Windows.


[-] Solution:

Update to version 3.4.3 or later.


[-] Disclosure Timeline:

[29/09/2014] - Vendor notified
[29/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-8084 to this vulnerability.


[-] Credits:

Vulnerability discovered by Egidio Romano.


[-] Original Advisory:

http://karmainsecurity.com/KIS-2014-15

_______________________________________________
Sent through the Full Disclosure mailing list
http://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ