El gobierno indio asegura que ha abordado una vulnerabilidad crítica en su servicio orientado a almacenaje de documentos, Digilocker, que podría haber permitido que un atacante remoto evitara las contraseñas de un solo uso (OTP) e inicie sesión como otros usuarios.

Descubierta por separado por dos investigadores independientes de bug bounty, Mohesh Mohan y Ashish Gahlot, la vulnerabilidad podría haberse aprovechado fácilmente para acceder sin autorización a documentos confidenciales cargados por usuarios específicos en la plataforma operada por el gobierno.
«La función de OTP carece de autorización, lo que hace posible realizar la validación de OTP enviando los detalles de los usuarios válidos y luego manipular el flujo de la comunicación para iniciar sesión como un usuario totalmente diferente», según Mohesh Mohan.
Con más de 38 millones de usuarios registrados, Digilocker es un repositorio basado en la nube que actúa como una plataforma digital para facilitar el procesamiento en línea de documentos y una entrega más rápida de varios servicios gubernamentales para el ciudadano. Está vinculado al número de teléfono móvil de un usuario y al ID de Aadhar, un número de identidad único (UID) emitido para todos los residentes de la India.
Según Mohan, todo lo que un atacante necesita saber es la identificación de Aadhaar de la víctima, el número de teléfono móvil vinculado o el nombre de usuario para acceder sin autorización a una cuenta de Digilocker específica, la cual solicita al servicio que envíe una OTP para, posteriormente, explotar la falla y evitar el proceso de inicio de sesión.

Vale la pena señalar que la versión de la aplicación móvil de Digilocker también viene con un PIN de 4 dígitos para una capa adicional de seguridad. Pero los investigadores dijeron que era posible modificar las llamadas a la API para autenticar el PIN al asociar el PIN a otro usuario (identificado con un UUID versión 5) e iniciar sesión con éxito como la víctima.
Esto significa que «puede hacer la verificación SMS OTP como un usuario y enviar el pin de un segundo usuario. Finalmente, terminará iniciando sesión como el segundo usuario», dice el investigador Mohesh Mohan.
Además, la falta de autorización para el endpoint de la API utilizado para establecer el PIN secreto implica que la API se puede explotar para restablecer el PIN vinculado a un usuario aleatorio que utiliza el UUID del individuo. «No hay información relacionada con la sesión en la solicitud POST, por lo que no está vinculada a ningún usuario», agregó.

Además de los problemas mencionados anteriormente, las llamadas a la API desde aplicaciones móviles se aseguraron mediante un basic auth que se puede eludir eliminando un valor del encabezado «is_encrypted: 1.»
También se descubrió que la aplicación implementa un mecanismo de fijación SSL débil, vulnerable a ciertos tipos de bypass llevados a cabo con ayuda de herramientas como Frida.
Después de que Mohan informara sobre el fallo a CERT-In el 10 de mayo y Ashish a DigiLocker el 16 de mayo, la agencia comunicó que el problema se había solucionado el 28 de mayo.
«La naturaleza de la vulnerabilidad fue tal que la cuenta de DigiLocker de un individuo podría potencialmente verse comprometida si el atacante conocía el nombre de usuario de esa cuenta en particular», dijo Digilocker en un tweet reconociendo el fallo.
«Tras el análisis, se descubrió que esta vulnerabilidad se había infiltrado en el código cuando se agregaron recientemente algunas características nuevas. El equipo técnico solucionó la vulnerabilidad de manera prioritaria un día después de recibir la alerta de CERT-In. Ningún dato, base de datos, almacenamiento o cifrado se vio comprometido», agregó el equipo.
Más información:
Deja una respuesta