Auf der Android-Plattform wurde eine Sicherheitsanfälligkeit (CVE-2022-20465) entdeckt, die es ermöglicht, die Bildschirmsperre durch Wechseln der SIM-Karte und Eingabe des PUK-Codes zu deaktivieren. Diese Möglichkeit wurde auf Google Pixel-Geräten demonstriert, jedoch betrifft das korrigierte Problem vermutlich auch Firmware-Versionen anderer Hersteller, da es die zugrunde liegende Android-Codebasis umfasst. Das Problem wurde im Sicherheitsupdate vom November behoben. Der Forscher, der auf das Problem aufmerksam gemacht hat, erhielt von Google eine Belohnung in Höhe von 70.000 US-Dollar.
Das Problem resultiert aus einer fehlerhaften Handhabung der Entsperrung nach Eingabe des PUK-Codes (Personal Unblocking Key), der zur Wiederherstellung der Funktion einer SIM-Karte verwendet wird, die nach mehrfach falscher Eingabe des PIN-Codes gesperrt wurde. Um die Bildschirmsperre zu deaktivieren, reicht es aus, die eigene SIM-Karte, die mit einer PIN-sicheren Funktion ausgestattet ist, in das Telefon einzulegen. Nach dem Wechsel auf die PIN-geschützte SIM-Karte wird zunächst eine PIN-Abfrage angezeigt. Wird der PIN-Code dreimal falsch eingegeben, erfolgt eine Sperre der SIM-Karte, nach der die Möglichkeit geboten wird, den PUK-Code einzugeben, um die Karte zu entsperren. Es hat sich herausgestellt, dass die korrekte Eingabe des PUK-Codes nicht nur die SIM-Karte entsperrt, sondern auch einen direkten Zugriff auf die Hauptoberfläche gewährt, die um die Bildschirmsperre herumgeht, ohne dass zur Bestätigung des Zugriffs das Hauptpasswort oder die grafische Entsperrmethode eingegeben werden muss.

Die Schwachstelle wird durch einen Fehler in der Logik der Überprüfung von PUK-Codes im KeyguardSimPukViewController verursacht, der für die Anzeige des zusätzlichen Authentifizierungsbildschirms verantwortlich ist. In Android gibt es verschiedene Arten von Authentifizierungsbildschirmen (für PIN, PUK, Passwort, grafischen Schlüssel und biometrische Authentifizierung), die nacheinander aufgerufen werden, wenn mehrere Überprüfungen erforderlich sind, beispielsweise wenn sowohl eine PIN als auch ein grafischer Schlüssel benötigt werden.
Bei der korrekten Eingabe der PIN wird die zweite Überprüfungsstufe aktiviert, die Eingaben des Hauptentsperrcodes erfordert. Bei der Eingabe des PUK-Codes wird dieser Schritt jedoch übersprungen, und der Zugriff wird ohne Aufforderung zur Eingabe des Hauptpassworts oder des grafischen Schlüssels gewährt. Das Überspringen der nächsten Entsperrphase erfolgt, da beim Aufruf von KeyguardSecurityContainerController#dismiss() kein Vergleich zwischen der erwarteten und der tatsächlich durchgeführten Überprüfungsmethode stattfindet. Das bedeutet, dass der Handler davon ausgeht, dass sich die Überprüfungsmethode nicht geändert hat, und der Abschluss der PUK-Code-Überprüfung als erfolgreiche Bestätigung der Berechtigungen gewertet wird.
Die Schwachstelle wurde zufällig entdeckt – der Nutzer hatte sein Telefon entladen, und nach dem Aufladen und Einschalten gab er mehrmals den PIN-Code falsch ein. Anschließend entschloss er sich, die Sperre mit dem PUK-Code aufzuheben und war überrascht, dass das System kein Hauptpasswort verlangte, welches zur Entschlüsselung der Daten verwendet wird. Danach blieb es mit der Meldung „Pixel wird gestartet...“ stehen. Der Nutzer war hartnäckig, wollte herausfinden, was vor sich ging, und begann, auf verschiedene Weisen mit der Eingabe der PIN- und PUK-Codes zu experimentieren, bis er zufällig vergaß, das Gerät nach dem Wechsel der SIM-Karte neu zu starten, und anstelle eines Hängens Zugriff auf die Umgebung erhielt.
Besonders interessant ist die Reaktion von Google auf die Meldung über die Schwachstelle. Die Informationen über das Problem wurden im Juni übermittelt, aber bis September konnte der Forscher keine zufriedenstellende Antwort erhalten. Er vermutete, dass dieses Verhalten darauf zurückzuführen sei, dass er nicht der Erste war, der diesen Fehler gemeldet hatte. Erste Zweifel, dass etwas nicht stimmte, tauchten im September auf, als das Problem nach der Installation eines Firmware-Updates, das 90 Tage später veröffentlicht wurde, weiterhin bestand, nachdem bereits die angegebene Verschwiegenheitsfrist abgelaufen war.
Da alle Versuche, den Status der gemeldeten Problemmeldung zu erfahren, nur zu automatisierten und standardisierten Antworten führten, versuchte der Forscher, persönlich mit Mitarbeitern von Google in Kontakt zu treten, um Informationen über den Stand der Behebung zu erhalten und demonstrierte sogar die Schwachstelle im Londoner Büro von Google. Erst danach kam die Arbeit zur Behebung der Schwachstelle in Bewegung. Bei der Überprüfung stellte sich heraus, dass das Problem bereits zuvor gemeldet worden war, aber Google entschied sich, eine Ausnahme zu machen und eine Belohnung für die erneute Meldung des Problems zu zahlen, da nur durch die Hartnäckigkeit des Melders auf das Problem aufmerksam gemacht wurde.
Quelle: opennet.ru
