After a failed attempt to privately report this issue to "Daniel" (who doesn't believe the issue to be real) on the official community forum, I decided to open this ticket, hopefully it will be taken into account now. OpenCart is prone to a remote PHP object injection vulnerability: the vulnerable code is located within the "Cart::getProducts()" method (system/library/cart.php), which passes to the "unserialize()" function the key values of the array stored into the "data[cart]" session variable. Such values might be manipulated by an unauthenticated attacker via the "quantity" POST parameter during an "update" request. I've been able to find only one possible attack vector: by abusing the destructor method of the "DBMySQLi" class it might be possible to carry out Server-Side Request Forgery attacks (CWE-918). However, other attack vectors might be possible leveraging magic methods defined in third-party extensions (http://www.opencart.com/index.php?route=extension/extension).
After a failed attempt to privately report this issue to "Daniel" (who doesn't believe the issue to be real) on the official community forum, I decided to open this ticket, hopefully it will be taken into account now. OpenCart is prone to a remote PHP object injection vulnerability: the vulnerable code is located within the "Cart::getProducts()" method (system/library/cart.php), which passes to the "unserialize()" function the key values of the array stored into the "data[cart]" session variable. Such values might be manipulated by an unauthenticated attacker via the "quantity" POST parameter during an "update" request. I've been able to find only one possible attack vector: by abusing the destructor method of the "DBMySQLi" class it might be possible to carry out Server-Side Request Forgery attacks (CWE-918). However, other attack vectors might be possible leveraging magic methods defined in third-party extensions (http://www.opencart.com/index.php?route=extension/extension).