American Express web bug exposes card holders
XSS: Entrenched since November 2008
Updated A glaring vulnerability on the American Express website has unnecessarily put visitors at risk for more than two weeks and violates industry regulations governing credit card companies, a security researcher says.
Among other things, the cross-site scripting (XSS) error on americanexpress.com allows attackers to steal users' authentication cookies, which are used to validate American Express customers after they enter their login credentials. Depending on how the website is designed, miscreants could use the cookies to access customer account sections, said Russ McRee of the Holistic Security blog. A URL demonstrating this weakness is here.
McRee aired the American Express dirty laundry here after spending more than two weeks trying in vain to get someone inside the company to fix the problem. After getting no response from lower level employees, he emailed a director of a department responsible for information security at Amex. None of his emails was answered.
"I believe they have an obligation to respond, even if it's brief and callous," McRee told El Reg. "You don't have to be polite. Just fix it."
American Express proudly proclaims itself as a founding member of the PCI Security Standards Council, the group that forges the rules governing the Payment Card Industry. McRee says PCI's Data Security Standards expressly hold that XSS errors are a violation of those rules, so Amex's inaction carries a fair amount of irony.
XSS vulnerabilities are by far the most common class of security flaw affecting websites. They allow attackers to inject their own malicious code and graphics into trusted websites. In the process, they can siphon cookies, passwords, and other input supplied by users or create convincing spoof sites that show the target website' URL in the user's address bar. XSS vulnerabilities are generally quick and easy to fix.
On Monday, the XSSed blog reported three XSS bugs in Facebook, and within hours, they appeared to have been squashed. After sitting on a separate XSS flaw for four months, the social networking site exorcised it last week after The Register reported it here.
The NoScript add-on for the Firefox browser does an admirable job fending off XSS bugs. The upcoming version of Internet Explorer 8, which is now in beta, also sports some impressive anti-XSS features.
The Amex XSS vulnerability is the result of a lack of input validation in a get request using the q parameter. In addition to exposing users' cookies, it allows allows attackers an easy way to create counterfeit pages for phishing and to inject malicious code using an iframe. Proofs of concept for those exploits are here and here.
We emailed Amex representatives and asked them if the company has a procedure for people to report XSS errors and other flaws that compromise their PCI compliance. A spokesman called back to say the company is looking in to McRee's report. We'll be sure to update this story when we get the results. ®
Less than an hour after this story was posted, Amex closed the hole. Fortunately, McRee has documented it in this video. A day after this story was published, Amex spokesman Rob Sherman called to say company web developers began working on a fix shortly after reading about the vulnerability on McRee's blog.
"We take all aspects of our data security very seriously, and we appreciate people bringing to our attention any potential vulnerabilities so we can act on them as quickly as possible," he said.
Security researchers who discover vulnerabilities on Amex's site may report them by contacting a member of the company's PR team, he added. A list of contacts is available here.
While we're on the subject of CVV numbers...
... how do services like Amazon One-Click [pat. pending ;-)] work within the law? With these services, you don't have to enter in any credit card details, so in order to process the transaction, they must be storing the CVV number.
Or do they get exempted from having to provide a CVV number by the card companies "because they're Amazon" and therefore "beyond reproach"?
Sorry, BlueGreen, you are correct, my response was supposed to be directed @Simpson. Sorry about that.
@Miami Mike, I feel our sympathy for the merchants as well. The regulations are ridiculous and the fines are strict. But something as stupid as writing down the CVV on a piece of paper and sticking it in filling cabinet? I mean that isn't like its accidental storage by your automated backup system or something. That is just sheer stupidity, or deliberate disregard for the purpose of the CVV, one of the two.
Actually, when I asked them about it, they said Visa told them they needed to run the card with the CVV to show that it was physically present. So their brilliant idea? Write it down, go back to the main office, and run it there. An obvious intentional fraud. They are essentially lying to Visa saying the card is physically present when it is not.
That being said, the PCI docs all seem to imply electronic storage, and I didn't see anything about writing the number down on paper, but I can only assume they mean storage of any kind, disk, abacus, whatever.
I'm loving the point of contact for security issues being the PR department. Not sure it says anything good about the tech industry though...