I ricercatori di Duo Security hanno scoperto una vulnerabilità in PayPal che permette di bypassare il sistema 2FA (two-factor authentication) durante il processo di login. Dato che le app mobile sfruttano una API del servizio web anche se non supportano l’autenticazione in due passi, è possibile creare uno script per eludere il meccanismo Security Key, nome assegnato dall’azienda alla funzionalità di sicurezza. PayPal ha implementato un workaround per ridurre l’impatto della vulnerabilità, in attesa della patch definitiva.
Duo Security ha scoperto il bug intercettando e analizzando il traffico HTTP/HTTPS tra l’app per iOS e i server di PayPal (risultati simili si possono ottenere anche su Android). Il sistema Security Key offre un livello aggiuntivo di protezione per l’account, in quanto il login viene accettato solo dopo aver inserito un codice, generato con una card oppure ricevuto via SMS. Il sistema 2FA però non è supportato dalle app mobile, quindi se viene attivato (tramite browser), l’utente vedrà sullo schermo un messaggio di errore.
Nel codice di risposta del server, l’attributo “2fa_enabled” è impostato al valore “true“, ma se viene cambiato in “false“, il client mobile consentirà l’accesso, come se l’autenticazione in due passi non fosse stata impostata. Utilizzando il token di sessione, anch’esso presente nel codice, è possibile accedere all’account ed effettuare pagamenti non autorizzati. Duo Security ha realizzato un proof-of-concept in Python per dimostrare l’esistenza della vulnerabilità. PayPal ha implementato un fix lato-server per evitare l’invio del token di sessione, quindi non è più possibile accedere al credito degli utenti.
L’azienda di San Jose ha comunicato che gli account degli utenti sono al sicuro, in quanto il servizio usa altre funzionalità di sicurezza. Per precauzione è stata disattivata la possibilità di effettuare il login tramite app mobile (solo per chi usa la 2FA). In questo caso, è necessario accedere tramite browser, in attesa di una patch definitiva.