American Express Form Spent Part Of Tuesday Sending Card Data In The Clear

American Express was either having a very bad—or a very good—security day on Tuesday (May 25), depending on your perspective. It was a bad day because the card brand was caught sending out a form that was labeled secure, but which in reality was transmitting card numbers, expiration dates and verification codes (CID, in Amex parlance) in the clear to its server.

The brand was having a somewhat good day in that it learned of the glitch, fixed it and republished the form in less than four hours. That's impressively fast, even in Web time.

American Express Online Communications VP Leslie Berland used her Twitter account on Tuesday to announce that Amex was aware of the E-mail hole and that it was "under investigation."

It apparently all started Tuesday morning, when security blogger Joe Damato received an E-mail blast from Amex pitching a "deal of the day," which is a relatively low-priced product with very limited stock.

The enticement to fill out the form involves getting access to a site that pre-announces the exact time of the sales.

The Amex form sought all the aforementioned personal security details and it promised that "this page is secure."

Damato described the next step: "This form looked very suspicious to me, so I decided to take a look at the code to see if the action for this sign-up form was over HTTPS. So the action is to a handler at The lack of HTTPS doesn't make me feel very good." He then checked the submit function and saw that it was just a validator. "It is really starting to feel like this form is insecure," Damato said.

Next he filled out the form with bogus data and submitted it, while using a packet sniffer to see what it sent back. Damato saw—and his site posted the screen captures—that all the card data was indeed being sent to the Amex server in the clear.

He posted the problem at 11:54 AM West Coast time, and it was fixed by 3:35 PM West Coast time that same day. Damato's sniffer, he reported, then showed "only TLS traffic now, nothing in the clear. Pretty quick fix."

One poster said the change was to load the form in HTTPS inside an iframe.

Those who commented on the site loaded more grief onto Amex. "That's not their only problem. Go to that site and use Wireshark to watch what's loaded by that page. The Amex site loads a bunch of markup and JavaScript from other domains, including sharethis, Google lead services, Google Analytics and Doubleclick," one commenter wrote. "They've basically reduced their page security to the lowest common denominator. If any of those sites or DNS entries are compromised, the Amex site is compromised. Doesn't the PCI DSS also say something about reviewing custom code? I wonder if they've reviewed all that code they load from others? It's hard to believe a card brand rolled out a site with so many issues."

Said another: "Say, for example, someone loads a plugin for Doubleclick that captures all the inputs on a page and logs them for tracking purposes. All those form fields are sent in plain text to a separate server, where [the data] could potentially be seen by countless people--both at Amex and Doubleclick. A bean counter at Amex could update the tracking without anyone knowing and grab everyone's credit card info easy as pie."