Security advisory Issue: Shopfactory e-commerce application allows alteration of order details Date: 03/05/03 Vendor first notified: December 2002 Affected versions: All available versions (current version Shopfactory 5.8) ABOUT SHOPFACTORY: Shopfactory is a shopping cart solution. According to the Shopfactory website (http://www.shopfactory.com/), there are currently over 40.000 Internet sites that have built their online shop using Shopfactory software. The Shopfactory software is built to operate mainly client site. From a functionality and ease of use point of view, this choice is excellent. People that are running an e-commerce site with Shopfactory do not need extensive knowledge about typical back-end components and scripting languages. They only need to run a wizard that will help them to create their HTML code that can then be uploaded to their website. The shopping cart of a customer is maintained using JavaScript and cookies. When selecting a product, the cookie is updated with the details of the product that has just been selected. After completing the order, the details are submitted to a central server that Shopfactory is running for its customers. SECURITY ISSUES: While the Shopfactory product is an excellent choice for shops that do not have the resources/funds/technical know how to run a server-side based site, the client side approach of this product is introducing security risks. The main problem is that all actions that are trusted to the client side of the configuration are also adjustable by the maintainer of that side. Since the pricing of products within the sides is trusted to the client, a customer of a shop that is using Shopfactory is able to determine his own price for the product he wants to order. Within the site, there are three main points where altering the price is possible: 1.. Before adding a product to your shopping cart, the price can be altered to a preferred value. The price that will be send to the shopping cart can be found in a hidden form field. 2.. When adding a product to your shopping cart, the price is stored in a cookie. As of version 5.8, this cookie has been "encrypted". However, the "encryption" and "decryption" of the cookie also happens client side. The algorithm can be found in the JavaScript code that is included in one of the frames of the site. 3.. After processing your shopping cart, the details in the cookie get "decrypted" and are put into one form. At this point, all the details of your order can be altered before you post them to a cgi on the Shopfactory server, that is processing the order for the shop owner. VENDOR RESPONSE: 3D3 (the creators of Shopfactory) is working on the problems. In the future, they will release a server-side shopping cart solution. With this step, it will not be possible anymore to alter the prices on the client side. Besides the new server-side solution, they will also keep on offering their current client-side solution. 3D3 promised to release a new version that will make it harder to alter the client side pricing. Nevertheless, obscurity will never offer real security. Currently, it is two weeks past the date that 3d3 said they would release a fix. They did not respond to an e-mail sent to them a couple of days ago that proposed to publish the issue to make current and future shop owners aware of these problems. ADVISE TO SHOP OWNERS If you have the possibilities and technical know-how consider migrating your site to one that is keeping critical data server-side. If you do not have these possibilities, checking the pricing of al orders by hand before processing the order will mitigate the risk.