PayPal was one of the first large online services providers to offer two-factor authentication to its users, but until recently the company's implementation had a loophole that could have allowed attackers to bypass this additional protection.
Two-factor authentication (2FA) systems prevent hackers from misusing stolen user names and passwords by requiring an additional randomly generated security code during the authentication process. Depending on implementation, the secret codes can be generated using a special mobile application, can be received via text message or can be generated by a physical hardware device.
According to researchers from 2FA provider Duo Security, the PayPal "Security Key" feature -- which is what the payment service provider calls its two-factor authentication system -- could have easily been bypassed until Monday through the company's mobile apps and API (application programming interface).
PayPal mobile apps for iOS and Android do not support 2FA and were designed to lock out users with accounts that have Security Key enabled. However, the blocking was being done post-authentication, after receiving a message from the server to indicate that the account had 2FA enabled.
A developer named Dan Saltman found that by enabling Airplane Mode on iOS right after the PayPal app logged him, he could prevent the server from signaling the presence of 2FA on his account to the app and avoid being locked out. He also discovered that by disabling Airplane Mode a few seconds later, he could start using his PayPal account through the app without restrictions.
Saltman contacted PayPal through its bug bounty program in March, but after failing to receive a status update from the company, took his findings to Duo Security. The security firm's researchers investigated further and were able to also replicate the bypass in PayPal's app for Android, although with less reliability.
Digging deeper for the root cause, the Duo Security researchers analyzed how PayPal mobile apps interacted with the company's authentication API and found that even for accounts with 2FA enabled, the service would provide a session token after logging in with just the user name and password. That session token could then be used through a separate API for mobile clients to perform various account-related activities, including sending money.
The researchers said Wednesday in a blog post that this implementation loophole would have allowed attackers to misuse stolen PayPal user names and passwords, regardless of whether the corresponding accounts had 2FA enabled.
The theft of PayPal credentials is not uncommon and many keylogger and Trojan programs target PayPal accounts in addition to online banking accounts.
PayPal acknowledged the bypass, but downplayed its significance and said that all accounts remain secure.
"Even though 2FA is an additional layer of authentication, PayPal does not depend on 2FA to keep accounts secure," Anuj Nayar, senior director of global initiatives at PayPal said Wednesday in a blog post. "We have extensive fraud and risk detection models and dedicated security teams that work to help keep our customers' accounts secure from fraudulent transactions, everyday."
As a precaution, the company has disabled the ability of customers with 2FA enabled to log in through PayPal mobile apps and other mobile apps, Nayar said. However, those customers can still use their accounts on mobile devices by visiting the PayPal mobile site instead, he said.
It would have been easy for someone else to discover this issue in the past, especially since the problem has likely existed for a long time, said Zach Lanier, a senior security researcher at Duo Security. The strange behavior on iOS where the app briefly showed information about the account before locking the user out was enough for Saltman, who is not a security researcher, to try the airplane-mode trick, he said.
It would have taken someone with a hacker mindset from 30 minutes to an hour to reverse engineer the whole process and figure out what happens underneath, Lanier said. PayPal should have been able to find the underlying issue back in March when Saltman first reported the airplane-mode bypass to the company, he said.