A simple coding oversight has left the Vodacom4me site vulnerable allowing access to customers private call records. The problem allows users to increment their customer number thereby accessing random customer accounts.
Here is a quick example of the problem. Say we have a call record page that displays a customer’s call records.
callrecords.php
The page accepts a customers id which it then uses to query the DB and present the returned data. i.e. callrecords.php?customerid=12345
The parameter can be accepted via a Post or a Get.
Now anyone with a little web knowledge can simply increment the id to say 12346 and thereby obtain the personal data of a random Vodacom customer.
Here is Vodacom’s response to the problem:
Vodacom spokesman Dot Field said that when the Sunday Times brought the matter to their attention, the vulnerable section of the website was “disabled with immediate effect”.
The weakness had made it possible to display random customer information from a “caching front end server” which briefly stored information. The main database of information was secure, she said.
I’m really not sure how they can say the main database remained secure. Another case of trying to throw technical terms in the air to try and cover up a blatant error.
Solution: Simple, ensure your developers have the correct security training and improve the QA process.