Detectaron una vulnerabilidad en Android que permite eludir la pantalla de bloqueo
Hace poco se dio a conocer la noticia de que fue identificada una vulnerabilidad en Android (CVE-2022-20465) que permite desactivar el bloqueo de pantalla intercambiando la tarjeta SIM e introduciendo el código PUK.
El problema se debe a un procesamiento de desbloqueo incorrecto después de ingresar un código PUK (Clave de desbloqueo personal), que se usa para reactivar una tarjeta SIM que se bloqueó después de varias entradas incorrectas de PIN.
Para deshabilitar el bloqueo de pantalla, todo lo que necesita hacer es insertar su tarjeta SIM en su teléfono, que tiene protección basada en PIN. Después de cambiar la tarjeta SIM protegida por PIN, primero se muestra una solicitud de código PIN en la pantalla. Si el código PIN se ingresa incorrectamente tres veces, la tarjeta SIM se bloqueará, después de lo cual se le dará la oportunidad de ingresar el código PUK para desbloquearla.
Resultó que la entrada correcta del código PUK no solo desbloquea la tarjeta SIM, sino que conduce a una transición a la interfaz principal sin pasar por el protector de pantalla, sin confirmar el acceso con la contraseña principal o el patrón.
La vulnerabilidad se debe a un error en la lógica de verificación de códigos PUK en el controlador KeyguardSimPukViewController, que se encarga de mostrar una pantalla de autenticación adicional. Android utiliza varios tipos de pantallas de autenticación (para PIN, PUK, contraseña, patrón, autenticación biométrica) y estas pantallas se invocan de forma secuencial cuando se requieren varias verificaciones, como cuando se requieren PIN y patrón.
Si el código PIN se ingresa correctamente, se activa la segunda etapa de verificación, que requiere el ingreso del código de desbloqueo principal, pero al ingresar el código PUK, esta etapa se salta y se otorga el acceso sin solicitar la contraseña o el patrón principal.
La siguiente etapa de desbloqueo se descarta porque cuando se llama a KeyguardSecurityContainerController#dismiss(), el método de verificación esperado y aprobado no se compara, es decir, el manejador considera que el cambio del método de verificación no ocurrió y la finalización de la verificación del código PUK indica una confirmación exitosa de la autoridad.
La vulnerabilidad se descubrió por accidente: el teléfono del usuario se quedó sin batería y, después de cargarlo y encenderlo, cometió un error al ingresar el código PIN varias veces, luego de lo cual desbloqueó el código PUK y se sorprendió de que el sistema no solicitara la contraseña principal utilizada para descifrar los datos, después de lo cual aparece el mensaje «Pixel se está iniciando…».
El usuario resultó ser meticuloso, decidió averiguar qué estaba pasando y comenzó a experimentar ingresando códigos PIN y PUK de varias maneras, hasta que accidentalmente olvidó reiniciar el dispositivo después de cambiar la tarjeta SIM y obtuvo acceso al entorno en lugar de congelación.
De particular interés es la respuesta de Google al informe de vulnerabilidad. La información sobre el problema se envió en junio, pero hasta septiembre, el investigador no pudo obtener una respuesta clara. Consideró que este comportamiento se debió a que él no fue el primero en reportar este error.
Las sospechas de que algo iba mal surgieron en septiembre cuando el problema permaneció sin corregir después de que se lanzó una actualización de firmware 90 días después, después de que el período de no divulgación establecido ya había expirado.
Dado que todos los intentos de averiguar el estado del informe de problemas enviado solo condujeron a cancelaciones de suscripción automatizadas y de plantillas, el investigador intentó contactar personalmente a los empleados de Google para aclarar la situación con la preparación de una solución, e incluso demostró una vulnerabilidad en la oficina de Google en Londres.
Solo después de eso, el trabajo para eliminar la vulnerabilidad avanzó. Durante el análisis resultó que alguien ya había reportado el problema antes, pero Google decidió hacer una excepción y pagar una recompensa por volver a reportar el problema, ya que solo gracias a la perseverancia de su autor se notó el problema.
La capacidad de deshabilitar el bloqueo se ha demostrado en los dispositivos Google Pixel, pero dado que la solución afecta al código base principal de Android, es probable que el problema también afecte al firmware de otros fabricantes. El problema se abordó en el Rollo de parches de seguridad de Android de noviembre. El investigador que llamó la atención sobre el problema recibió una recompensa de $ 70,000 de Google.
Fuente: https://bugs.xdavidhu.me