-----------------------------------------------------------------------
Piwik <= 2.14.3 (DisplayTopKeywords) PHP Object Injection Vulnerability
-----------------------------------------------------------------------


[-] Software Link:

https://piwik.org/


[-] Affected Versions:

Version 2.14.3 and prior versions.      


[-] Vulnerability Description:

The vulnerability is caused by the DisplayTopKeywords() function
defined in the /plugins/Referrers/Controller.php script:

358.    function DisplayTopKeywords($url = "", $api)
359.    {
360.        // Do not spend more than 1 second fetching the data
361.        @ini_set("default_socket_timeout", $timeout = 1);
362.        // Get the Keywords data
363.        $url = empty($url) ? "http://"; . $_SERVER["HTTP_HOST"] ...
364.        $api = $api . "&url=" . urlencode($url);
365.        $keywords = @unserialize(file_get_contents($api));

The content retrieved by the "file_get_contents()" function located at the URL 
defined in
the $api variable is passed directly to the "unserialize()" function at line 
365, and this
can be exploited to inject arbitrary objects into the application scope, 
allowing remote
attackers to carry out Server-Side Request Forgery (SSRF) attacks, to include 
and execute
arbitrary PHP code, and possibly other attacks. Successful exploitation of this 
vulnerability
requires the application running with certain configuration settings allowing 
to manipulate
the value of the $api variable through HTTP headers (like Host or 
X-Forwarded-Host).


[-] Solution:

Update to version 2.15.0 or later.


[-] Disclosure Timeline:

[27/08/2015] - Vendor notified
[09/09/2015] - Issue fixed on the GitHub repository: http://git.io/vly3D
[06/10/2015] - CVE number requested
[14/10/2015] - CVE number assigned
[22/10/2015] - Version 2.15.0 released: https://piwik.org/changelog/piwik-2-15-0
[04/11/2015] - Public disclosure


[-] CVE Reference:

The Common Vulnerabilities and Exposures project (cve.mitre.org)
has assigned the name CVE-2015-7816 to this vulnerability.


[-] Credits:

Vulnerability discovered by Egidio Romano.


[-] Original Advisory:

http://karmainsecurity.com/KIS-2015-10

Reply via email to