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.