Une vulnérabilité a été découverte dans la plateforme Android (CVE-2022-20465), permettant de désactiver le verrouillage de l'écran en réorganisant la carte SIM et en saisissant le code PUK. La possibilité de désactiver le verrouillage a été démontrée sur des appareils Google Pixel, mais étant donné que le correctif touche la base de code principale d'Android, il est probable que le problème concerne également les firmwares d'autres fabricants. Le problème a été résolu dans le patch de sécurité de novembre pour Android. Le chercheur ayant attiré l'attention sur le problème a reçu une récompense de 70 000 dollars de la part de Google.
Le problème est causé par un traitement incorrect du déverrouillage après la saisie du code PUK (Personal Unblocking Key), utilisé pour rétablir la fonctionnalité de la carte SIM bloquée après plusieurs saisies incorrectes du code PIN. Pour désactiver le verrouillage de l'écran, il suffit d'insérer sa carte SIM protégée par un code PIN dans le téléphone. Après le changement de la carte SIM protégée par un code PIN, un prompt de saisie du code PIN apparaît d'abord à l'écran. Si le code PIN est saisi incorrectement trois fois, la carte SIM se bloque, après quoi il sera possible de saisir le code PUK pour déverrouiller. Il s'est avéré que la saisie correcte du code PUK non seulement déverrouille la carte SIM, mais permet également d'accéder à l'interface principale en contournant l'écran de verrouillage, sans confirmation d'accès par le mot de passe principal ou le schéma de déverrouillage.

La vulnérabilité est causée par une erreur dans la logique de vérification des codes PUK dans le gestionnaire KeyguardSimPukViewController, qui est responsable de l'affichage de l'écran d'authentification supplémentaire. Android utilise plusieurs types d'écrans d'authentification (pour le PIN, le PUK, le mot de passe, le schéma, l'authentification biométrique) et ces écrans sont appelés successivement lorsqu'il est nécessaire de réaliser plusieurs vérifications, par exemple lorsqu'un code PIN et un schéma sont requis.
Lors de la saisie correcte du code PIN, la deuxième étape de vérification est déclenchée, nécessitant l'entrée du code de déverrouillage principal. Cependant, lors de l'entrée du code PUK, cette étape est omise et l'accès est accordé sans demander le mot de passe principal ou le schéma graphique. L'absence de l'étape suivante du déverrouillage se produit car l'appel à KeyguardSecurityContainerController#dismiss() ne compare pas la méthode de vérification attendue et celle qui a été réussie, c'est-à-dire que le gestionnaire considère qu'il n'y a pas eu de changement de méthode de vérification, et la validation réussie du code PUK indique une authentification réussie.
La vulnérabilité a été découverte par hasard : un utilisateur a épuisé la batterie de son téléphone, et après avoir rechargé et allumé l'appareil, il a fait plusieurs erreurs en saisissant le code PIN. Après cela, il a déverrouillé avec le code PUK et a été surpris que le système n'ait pas demandé le mot de passe principal utilisé pour déchiffrer les données, après quoi il est resté bloqué avec le message « Pixel is starting… ». L'utilisateur étant méticuleux, il a décidé de comprendre ce qui se passait et a commencé à expérimenter de différentes manières avec la saisie des codes PIN et PUK, jusqu'à ce qu'il oublie par accident de redémarrer l'appareil après avoir changé de carte SIM et obtienne, au lieu d'un blocage, l'accès à l'environnement.
L'intérêt particulier réside dans la réaction de Google face à l'annonce de la vulnérabilité. Des informations sur le problème ont été envoyées en juin, mais jusqu'en septembre, le chercheur n'a pas réussi à obtenir de réponse satisfaisante. Il a jugé que ce comportement était dû au fait qu'il n'était pas le premier à signaler cette erreur. Les soupçons que quelque chose ne va pas sont apparus en septembre, lorsque le problème est resté non résolu après l'installation d'une mise à jour du firmware, lancée 90 jours plus tard, lorsque la période de non-divulgation annoncée avait déjà expiré.
Étant donné que toutes les tentatives de connaître l'état du message envoyé concernant le problème n'ont abouti qu'à des réponses automatisées et standardisées, le chercheur a essayé de contacter personnellement des employés de Google pour éclaircir la situation concernant la préparation de la correction et a même démontré la vulnérabilité dans le bureau de Google à Londres. Ce n'est qu'après cela que le travail pour remédier à la vulnérabilité a progressé. Au cours de l'examen, il s'est avéré que quelqu'un avait déjà signalé le problème auparavant, mais Google a décidé de faire une exception et de verser une récompense pour la répétition du signalement du problème, car c'est uniquement grâce à la persistance de son auteur que le problème a attiré l'attention.
Source : opennet.ru
