Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2020-14292 — Details zu CVE-2020-14292 | Kitploit
Tools/GitHubGitHub/alwentiu/cve-2020-14292
Android-SicherheitBluetooth-SicherheitSchwachstellenanalyseDrahtlose SicherheitMobile SicherheitPrivatsphäre
GitHubalwentiu/cve-2020-14292

CVE-2020-14292

Details zu CVE-2020-14292

Repository anzeigen
23vor 6 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2020-14292: Ein Bluetooth-Transportproblem in der COVIDSafe-App

Autor: Alwen Tiu, The Australian National University

Zuletzt aktualisiert: 2020-09-08

Zusammenfassung

In der COVIDSafe-Anwendung bis Version 1.0.21 für Android ermöglicht die unsichere Verwendung der Bluetooth-Transportoption bei der GATT-Verbindung Angreifern, die Anwendung dazu zu bringen, eine Verbindung über den Bluetooth-BR/EDR-Transport herzustellen, wodurch die öffentliche Bluetooth-Adresse des Telefons des Opfers ohne Autorisierung preisgegeben wird und der Schutz des Telefons durch Bluetooth-Adress-Randomisierung umgangen wird. Dieses Problem wird unter CVE-2020-14292. verfolgt.

Technische Beschreibung

Die Ursache des Problems liegt in der Funktion startWork, bei der eine GATT-Verbindung mit connectGatt hergestellt wird, jedoch keine Transportoption angegeben wurde.

root@kitploit:~
fun startWork(
    context: Context,
    gattCallback: StreetPassWorker.StreetPassGattCallback
) {
    gatt = device.connectGatt(context, false, gattCallback)
    if (gatt == null) {
       CentralLog.e(TAG, "Unable to connect to ${device.address}")
    }
}

Dies führt dazu, dass Android beim Initiieren der Bluetooth-Verbindung die Option TRANSPORT_AUTO für den Transport verwendet. Es scheint, dass in der Android-Implementierung standardmäßig auf BR/EDR zurückgegriffen wird, wenn das Peripheriegerät, mit dem verbunden wird, ein Dual-Mode-Gerät ist (das sowohl BR/EDR als auch LE unterstützt). Dies könnte auf die folgende Implementierung des GATT-Clients in Android zurückzuführen sein, siehe zum Beispiel diesen Code (relevanter Codeausschnitt unten):

root@kitploit:~
 // Determine transport
  if (transport_p != BT_TRANSPORT_AUTO) {
    transport = transport_p;
  } else {
    switch (device_type) {
      case BT_DEVICE_TYPE_BREDR:
        transport = BT_TRANSPORT_BR_EDR;
        break;

      case BT_DEVICE_TYPE_BLE:
        transport = BT_TRANSPORT_LE;
        break;

      case BT_DEVICE_TYPE_DUMO:
        if (transport_p == BT_TRANSPORT_LE)
          transport = BT_TRANSPORT_LE;
        else
          transport = BT_TRANSPORT_BR_EDR;
        break;
    }

Da die MAC-Adress-Randomisierung in BR/EDR nicht unterstützt wird, gibt das Central-Gerät seine Identitätsadresse an das Peripheriegerät preis.

Um einen Angriff zu starten, bewirbt der Angreifer einen GATT-Server auf einem Dual-Mode-Gerät (BR/EDR + LE) unter Verwendung der öffentlichen Adresse (dieser Teil ist wichtig, da sonst das Downgrade nicht erfolgt und das Android-Central-Gerät den LE-Transport verwendet). Dadurch verwendet die COVIDSafe-App den BR/EDR-Transport anstelle des LE-Transports, um sich mit dem Peripheriegerät zu verbinden, was dann dazu führt, dass die öffentliche Adresse des Telefons preisgegeben wird. Dies funktioniert auf allen getesteten Telefonen und Android-Versionen.

Für Android 6 und höher ist der Fix einfach: Geben Sie die Transportoption einfach explizit an.

root@kitploit:~
  gatt = device.connectGatt(context, false, gattCallback, BluetoothDevice.TRANSPORT_LE)

Dies funktioniert jedoch nicht unter Android 5.1 (API-Level 22), da diese Methode nicht in der API offengelegt ist. Sie ist zwar vorhanden, aber versteckt. Für Android 5.1 besteht ein möglicher Fix darin, diese versteckte Methode per Reflection aufzurufen. Diese Fixes wurden in COVIDSafe (Android) v1.0.48 implementiert.

Der Fix für Android 5.1 funktioniert jedoch möglicherweise nicht zu 100 %; meine Tests zeigten, dass weiterhin Identitätsadressen durchsickerten. Dies könnte auf das Scheitern der Reflection-Technik zur Laufzeit zurückzuführen sein; weitere Untersuchungen sind erforderlich.

Sicherheits- und Datenschutzauswirkungen

Der Besitz der Identitätsadresse eines Telefons würde es einem Angreifer ermöglichen, das Telefon zu verfolgen, wenn dessen Bluetooth eingeschaltet ist und es sich in der Bluetooth-Reichweite des Angreifers befindet. Einige Bluetooth-bezogene Schwachstellen (z. B. CVE-2020-0022) stützen sich auf die Kenntnis der Identitätsadresse, um weitere Angriffe durchzuführen; es besteht also die Möglichkeit, diesen Angriff mit anderen zu verketten. Siehe dieses Dokument für einige der Konsequenzen, wenn der Angreifer die Identitätsadresse besitzt.

Empfehlung

Benutzern der Android-Version der COVIDSafe-App wird dringend empfohlen, ihre App zu aktualisieren. Für Benutzer von Android 5 wird empfohlen, Bluetooth auszuschalten, wenn die Bluetooth-Funktionalität nicht benötigt wird.

Offenlegungszeitplan

Dieses Problem wurde am 2. Juni 2020 erstmals der Australian Government Digital Transformation Agency gemeldet. Der erste Fix wurde am 22. Juni 2020 für Android 6 und höher veröffentlicht. Es wurde bestätigt, dass dieser Fix unter Android 6 und höher funktioniert. Das Problem betraf jedoch weiterhin Android 5.1. Der zweite Fix, veröffentlicht am 30. Juli 2020, behob das verbleibende Problem mit Android 5.1.

Danksagung

Dank an Jim Mussared für die unabhängige Bestätigung dieses Problems und für verschiedene Diskussionen zu diesem Thema.

Tool herunterladen