La
vulnerabilidad, la cual ha sido catalogada con un CVSS 8.0, permitía a un
atacante obtener las credenciales del usuario desde el servidor
Indagando
sobre el funcionamiento de PayPal, el investigador de seguridad Alex Birsan
descubrió el pasado año un fichero Javascript dinámico en la plataforma de
pagos online que contenía dos valores relevantes (el csrf y el _sessionId).
Dichos valores, al encontrarse en un JavaScript, eran accesibles mediante un
XSSI, un tipo de ataque que incluyendo el fichero en una etiqueta script los hace accesibles.
Aunque esto
ya de por sí podría considerarse un fallo, profundizando sobre el uso de dichos
valores llegó a la conclusión que eran utilizados por PayPal en la resolución
de reCaptcha. Cuando se producen varios intentos de acceso en la plataforma, se
valida enviando dichos valores, junto con el token de Google. Es entonces en
dicha petición que el servidor devuelve el email y contraseña del usuario para
volver a enviar el formulario de autenticación.
Aprovechando
la vulnerabilidad, el sitio web de un atacante puede provocar varios accesos
frustrados a PayPal para comenzar la verificación reCaptcha. Al ser accesible
por el sitio del atacante los dos datos requeridos gracias al XSSI antes
nombrado, sólo necesita enviar la comprobación del captcha con los valores para
recibir las credenciales del usuario.
Prueba de
concepto del robo de las credenciales por el sitio del atacante. Fuente: Alex
Birsan en Medium.
El error,
que fue reportado a PayPal el 18 de noviembre, fue resuelto 24 horas después
tras ser confirmado. El descubrimiento le ha valido una recompensa de 15.300$
al investigador.
PayPal,
para solucionar el fallo, ha implementado una tercera clave necesaria en la
resolución del captcha que no es explotable por un XSSI. No obstante, ha
quedado demostrado que la empresa almacena, aunque sea durante un corto periodo
de tiempo, las contraseñas en plano de su usuarios, ya que es el servidor el
que devuelve la credencial a la petición.
Aunque sea
durante un corto periodo de tiempo (lo cual se desconoce) sigue siendo una mala
práctica almacenar las credenciales de los usuarios en plano.
Más
información:
- The Bug That Exposed Your PayPal Password https://medium.com/@alex.birsan/the-bug-that-exposed-your-paypal-password-539fc2896da9
Fuente:
Hispasec