Lucene search

K
seebugRootSSV:69208
HistoryJul 01, 2014 - 12:00 a.m.

CubeCart PHP (shipkey parameter) <= 4.3.x - Remote SQL Injection

2014-07-0100:00:00
Root
www.seebug.org
16

0.003 Low

EPSS

Percentile

67.1%

No description provided by source.


                                                SQL Injection in CubeCart PHP Free & Commercial Shopping Cart Application


1. *Advisory Information*

Title: SQL Injection in CubeCart PHP Free & Commercial Shopping Cart
Application
Advisory Id: CORE-2010-0415
Advisory URL:
[http://www.coresecurity.com/content/cubecart-php-shopping-cart-sql-injection]
Date published: 2010-06-08
Date of last update: 2010-06-08
Vendors contacted: CubeCart
Release mode: Coordinated release


2. *Vulnerability Information*

Class: SQL injection [CWE-89]
Impact: Code execution
Remotely Exploitable: Yes
Locally Exploitable: No
CVE Name: CVE-2010-1931
Bugtraq ID: N/A


3. *Vulnerability Description*

There is an SQL Injection[1] vulnerability in the CubeCart PHP
Shopping cart[2], this vulnerability may be exploited by &#39;HTTP
POST&#39;ing mailicious data to the index.php script of CubeCart. As an
example, exploitation may result in leak of sensitive information or
injection of mailicious code into the shopping cart&#39;s web page.


4. *Vulnerable packages*

   . CubeCart v.4.3.4
   . CubeCart v.4.3.5
   . CubeCart v.4.3.6
   . CubeCart v.4.3.7
   . CubeCart v.4.3.8
   . CubeCart v.4.3.9
   . Older versions are probably affected too, but they were not checked.


5. *Non-vulnerable packages*

   . CubeCart v.4.4.0


6. *Vendor Information, Solutions and Workarounds*

Upgrade to the latest version of CubeCart, available at CubeCart&#39;s web
page[1].


7. *Credits*

This vulnerability was discovered and researched by 7Safe
[http://www.7safe.com/]. This advisory was coordinated by Pedro
Varangot
[http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=researcher&name=Pedro_Varangot].



8. *Technical Description / Proof of Concept Code*

The shipKey parameter of the following POST request (Updating basket)
is not adequately sanitized resulting in SQL Injection.

/-----
POST /CubeCart/index.php?_g=co&_a=step2 HTTP/1.1
Cookie: [...]
Content-Type: application/x-www-form-urlencoded
[...]

quan%5B3afcdbfeb6ecfbdd0ba628696e3cc163%5D=3&shipKey=1&#39;&coupon=

- -----/

 This happens because the &#39;shipKey&#39; is assumed to be of the &#39;int&#39;
datatype, and is not cast nor checked before sent to the database, as
we can see in the folling code snippet:

/-----
if(isset($_POST[&#39;shipKey&#39;]) && $_POST[&#39;shipKey&#39;]&#62;0) {
    $cart-&#62;setVar($_POST[&#39;shipKey&#39;],&#39;shipKey&#39;);
    // lose post vars
    $refresh = true;
}
- -----/

 The following snippet correctly patches this bug:

/-----
if(isset($_POST[&#39;shipKey&#39;]) && (int)$_POST[&#39;shipKey&#39;]&#62;0) {
    $cart-&#62;setVar((int)$_POST[&#39;shipKey&#39;],&#39;shipKey&#39;);
    // lose post vars
    $refresh = true;
}
- -----/


9. *Report Timeline*

. 2010-06-02:
Core Security Technologies contacts the CubeCart team informing an SQL
injection vulnerability has been found, and than an advisory draft is
ready.

. 2010-06-02:
The CubeCart team asks Core for a technical description of the
vulnerability, in the form of an advisory draft, over plaintext e-mail.

. 2010-06-02:
Technical details are sent by Core in the form of a draft of this
advisory.

. 2010-06-03:
The CubeCart team replies informing that CubeCart 4.4.0 will be
released very soon, and that this vulnerability will be patched in
that version.

. 2010-06-04:
CubeCart 4.4.0 is released.

. 2010-06-08:
Advisory CORE-2010-0415 is published.