Using expired credit/debit cards… surely you can’t do that? Actually, yes you can. This is how it goes.
First, what can be observed (verified):
On a vendor site that allows your to save your card (hopefully via a token with the payment gateway provider, so it doesn’t actually store your card), you enter the card number and expiry date for your then still valid card. This is necessary because otherwise the site is likely to reject your input. Makes sense.
Some time later your card expires, but the vendor is still quite happy to keep using the card-on-file for recurring payments. The payment gateway apparently doesn’t mind, and our banks apparently don’t mind. I have observed this effect with Suncorp and Bank of Queensland, please let me know if you’ve observed this with other banks.
From this point, let’s play devil’s advocate.
- What if someone got hold of your card number+expiry date?
- Well, sites tend to reject dates-in-the-past on input. Excellent.
- What if that someone just does +4 on the year and then enters it – renewed cards tend to have the same number, just with an updated expiry 4 years in to the future (the exact number of years may differ between banks) ?
- Payment gateway should reject the card, because even though the card+expiry is “ok”, the CVV (Card Verification Value, the magic number on the back of the card) would be different! Nice theory, but…
- I’ve noted that some sites don’t ask for the CVV, and thus we must conclude at at least some payment gateways don’t require it. Eek!
I noticed that the payment gateway for one of these was Westpac.
- I’ve noted that some sites don’t ask for the CVV, and thus we must conclude at at least some payment gateways don’t require it. Eek!
- Payment gateway should reject the card, because even though the card+expiry is “ok”, the CVV (Card Verification Value, the magic number on the back of the card) would be different! Nice theory, but…
So what are the underlying issues:
- Banks let through payments on expired cards.
- Probably done for client convenience (otherwise you’d be required to update lots of places).
- Banks issue new cards with the same card number but just an updated year (even the month tends to be the same).
- Possibly convenience again, but if you need to update your details anyway with some vendor, you might as well update a few more numbers. I don’t see a valid reason to do this (please comment if you think of something).
- Some payment gateways don’t require CVV to let through a payment.
- This is inexcusable and means that the above two habits result in a serious fraud vector. Payment gateways, credit card companies and banks should not allow this at all, yet somehow it goes through the gateway -> credit card company path without getting rejected.
Security tends to involve multiple layers. This makes sense, as any one layer can be compromised. When a security aspect is procedurally compromised, such as not regarding an expired card as expired, or not requiring the o-so-important CVV number for online payments, it’s the vendor itself undoing their security. If that happens with a few layers, as in the above scenario, security is fatally impacted. A serious failing.
I have little doubt that people have been using this fraud vector some time as it’s unlikely that I’m the first one spotting this. In many scenarios, credit card companies tend to essentially weigh security risks against convenience, and refund those affected. This is what happens with abuse of the PayWave system, and while I don’t really like it, I understand why they do this. But I also think we have to draw the line somewhere. Not requiring CVV numbers for online transactions is definitely beyond. Possibly renewing cards with the same number also. And as it’s the combination of these factors that causes the problem, addressing any one of them could plug the hole – addressing more than one would be great.