Die rumänische Sicherheitsfirma Bitdefender stieß auf den Fehler bei der Analyse eines Android-Banking-Trojaners, der die Emulatoren der Forscher immer dann zum Absturz brachte, wenn er eine Anwendungsressource auslesen wollte.

Ursache sind nach Darstellung des Unternehmens zwei Android-Bibliotheken, die ZIP-Kompressionsverfahren unterschiedlich auslegen. Dadurch kann eine fehlerhaft aufgebaute APK-Datei die Größenprüfungen umgehen und über den tatsächlichen Dateiinhalt hinaus in den Speicher abgebildet werden. „Das Lesen eines solchen Eintrags löst in jedem Prozess, der die Datei anfasst, ein SIGBUS aus“ — also jenes Signal, mit dem die CPU einen Prozess stoppt, der auf einen ungültigen Speicherbereich zugreift, erklären die Forscher.

Für den Nachweis bauten die Forscher eine App, die keinen ausführbaren Code enthält, bei der Installation keine Berechtigungen verlangt und auf dem Gerät nicht einmal gestartet werden muss. Sie enthält eine Ressource, die der zentrale Android-Dienst „system_server“ nach der Installation automatisch zu lesen versucht. Der Lesevorgang löst den Fehler aus, der Prozess startet neu, liest dieselbe Ressource erneut und stürzt wieder ab — endlos.

Getestet wurde auf einem Pixel 10 mit Android 17 und dem Sicherheitspatch vom 5. August. Rund eine Sekunde nach der Installation begann die Absturzkette; im normalen Startmodus wiederholte sie sich 110-mal, im abgesicherten Modus 72-mal. Bitdefender weist darauf hin, dass die Boot-Schleife auch den Zugriff auf den abgesicherten Modus verhindert, über den sich das Problem sonst eingrenzen und das Gerät wiederherstellen ließe.

Die Abstürze lassen sich auf zwei Wegen stoppen:

  • Zurücksetzen auf Werkseinstellungen, wodurch alle lokal gespeicherten Daten gelöscht werden
  • Löschen der fehlerhaften Datei über ADB

Der ADB-Weg setzt allerdings voraus, dass das Debugging auf dem Gerät bereits aktiviert ist; zudem müssen die Skripte handeln, bevor das System abstürzt.

Bitdefender meldete das Problem am 20. August an Google und erhielt die Antwort „Won’t Fix (Not Reproducible)“ — der Fall liege außerhalb des Betrachtungsrahmens. Am 25. August reichten die Forscher eine erweiterte Fassung nach, weil sie von einer Fehleinstufung des ursprünglichen Berichts ausgingen. Google stufte den Fall weiterhin als nicht relevant für ein Sicherheitsupdate ein, behielt ihn aber für eine mögliche Berücksichtigung in einem künftigen Update vor. Eine Anfrage zum Stand eines Fixes für GhostMap blieb bislang unbeantwortet.

Nach Einschätzung von Bitdefender besteht die einzige Chance, den Angriff zu stoppen, im Moment der Installation: Sicherheitswerkzeuge von Drittanbietern können eine mögliche Bedrohung zwar erkennen und eine Warnung anzeigen, besitzen aber keine Berechtigung, die Installation zu blockieren.