WordPress eShop 6.3.11 Code Execution Exploit

Description:
High-Tech Bridge Security Research Lab discovered a security vulnerability in the eShop WordPress Plugin, which can be exploited by remote attackers to overwrite arbitrary PHP variables within the context of the vulnerable application. The vulnerability exists due to insufficient validation of user-supplied input in the “eshopcart” HTTP cookie. Successful exploitation of this vulnerability may potentially result in arbitrary PHP code execution.
Product: eShop WordPress plugin
Vendor: Rich Pedley
Vulnerable Version(s): 6.3.11 and probably prior
Tested Version: 6.3.11
Advisory Publication: April 15, 2015 [without technical details]
Vendor Notification: April 15, 2015
Public Disclosure: May 6, 2015
Vulnerability Type: Code Injection [CWE-94]
CVE Reference: CVE-2015-3421
Risk Level: Medium
CVSSv2 Base Score: 6.4 (AV:N/AC:L/Au:N/C:P/I:P/A:N)
Discovered and Provided: High-Tech Bridge Security Research Lab ( https://www.htbridge.com/advisory/ )

———————————————————————————————–

Advisory Details:

High-Tech Bridge Security Research Lab discovered security vulnerability in eShop WordPress Plugin, which can be exploited by remote attacker to overwrite arbitrary PHP variables within the context of the vulnerable application. The vulnerability exists due to insufficient validation of user-supplied input in “eshopcart” HTTP cookie. Successful exploitation of this vulnerability may potentially result in arbitrary PHP code execution (RCE).

Often such type of vulnerabilities lead to RCE, however in this case we can only overwrite string variables within the scope of ‘eshop_checkout()’ function in ‘/wp-content/plugins/eshop/checkout.php’ file. This reduces our current vectors of exploitation to Full Path Disclosure and Cross-Site Scripting.

Below is a simple PoC that overwrites contents of the “wpdb” PHP variable, which causes an error in code and discloses full installation path:

GET /shopping-cart-2/checkout/ HTTP/1.1
Cookie: eshopcart=wpdb%3d1%7C;

Another PoC triggers the XSS vector and executes JS pop-up box displaying “ImmuniWeb”:

GET /shopping-cart-2/checkout/ HTTP/1.1
Cookie: eshopcart=phone%3dsdfg'”>

———————————————————————————————–

Solution:

Disclosure timeline:
2015-04-15 Vendor Alerted via contact form and thread in support forum, no reply.
2015-04-29 Vendor Alerted via contact form and emails, no reply.
2015-05-05 Fix Requested via contact form and emails, no reply.
2015-05-06 Public disclosure.

Currently we are not aware of any official solution for this vulnerability.