Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2020-14292 — Détails de CVE-2020-14292 | Kitploit
Outils/GitHubGitHub/alwentiu/cve-2020-14292
Sécurité AndroidSécurité BluetoothAnalyse des VulnérabilitésSécurité Sans FilSécurité MobileProtection de la Vie Privée
GitHubalwentiu/cve-2020-14292

CVE-2020-14292

Détails de CVE-2020-14292

Voir le dépôt
23il y a 6 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2020-14292 : Un problème de transport Bluetooth dans l'application COVIDSafe

Auteur : Alwen Tiu, The Australian National University

Dernière mise à jour : 2020-09-08

Résumé

Dans l'application COVIDSafe jusqu'à la version 1.0.21 pour Android, une utilisation non sécurisée de l'option de transport Bluetooth dans la connexion GATT permet aux attaquants de tromper l'application pour qu'elle établisse une connexion via le transport Bluetooth BR/EDR, ce qui révèle l'adresse Bluetooth publique du téléphone de la victime sans autorisation, contournant ainsi la protection de randomisation d'adresse Bluetooth du téléphone de l'utilisateur. Ce problème est suivi sous CVE-2020-14292.

Description technique

La cause du problème se trouve dans la fonction startWork, où une connexion GATT est établie à l'aide de connectGatt, mais aucune option de transport n'a été spécifiée.

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}")
    }
}

Cela amène Android à utiliser l'option TRANSPORT_AUTO pour le transport lors de l'initiation de la connexion Bluetooth. Il semble que, dans l'implémentation d'Android, cela utilise par défaut le BR/EDR si le périphérique auquel on se connecte est un périphérique double mode (supportant à la fois BR/EDR et LE) ; cela pourrait être dû à l'implémentation suivante du client GATT dans Android, voir par exemple, ce code (extrait de code pertinent inclus ci-dessous) :

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;
    }

Étant donné que la randomisation d'adresse MAC n'est pas prise en charge en BR/EDR, le central révèle son adresse d'identité au périphérique.

  Pour lancer une attaque, l'attaquant annonce un serveur GATT sur un périphérique double mode (BR/EDR + LE), en utilisant l'adresse publique (cette partie est importante, sinon la rétrogradation ne se produira pas et le central Android utilisera le transport LE). Cela amène l'application COVIDSafe à utiliser le transport BR/EDR au lieu du transport LE pour se connecter au périphérique, ce qui entraîne la divulgation de l'adresse publique du téléphone. Cela fonctionne pour tous les téléphones et versions d'Android testés.

  Pour Android 6 et ultérieur, le correctif est simple : il suffit de spécifier explicitement l'option de transport.

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

Cependant, cela ne fonctionne pas pour Android 5.1 (API niveau 22), car cette méthode n'est pas exposée dans l'API. Elle existe bel et bien mais est masquée. Donc pour Android 5.1, un correctif possible consiste à utiliser la réflexion pour appeler cette méthode masquée. Ces correctifs ont été implémentés dans COVIDSafe (Android) v1.0.48.

Cependant, le correctif pour Android 5.1 peut ne pas fonctionner à 100% ; mes tests ont indiqué des fuites d'adresses d'identité persistantes. Cela pourrait être dû à l'échec de la technique de réflexion à l'exécution ; des investigations supplémentaires seront nécessaires.

Implications en matière de sécurité et de vie privée

La possession de l'adresse d'identité d'un téléphone permettrait à un attaquant de suivre le téléphone lorsque son Bluetooth est activé et qu'il se trouve à portée Bluetooth de l'attaquant. Certaines vulnérabilités liées au Bluetooth (par exemple CVE-2020-0022) reposent sur la connaissance de l'adresse d'identité pour mener d'autres attaques, il est donc possible d'enchaîner cette attaque avec d'autres. Voir ce document pour certaines conséquences de la possession de l'adresse d'identité par un attaquant.

Recommandation

Il est fortement recommandé aux utilisateurs de la version Android de l'application COVIDSafe de mettre à jour leur application. Pour ceux qui utilisent Android 5, il est recommandé de désactiver le Bluetooth lorsque la fonctionnalité Bluetooth n'est pas nécessaire.

Calendrier de divulgation

Ce problème a été signalé pour la première fois à l'Agence australienne de transformation numérique (Digital Transformation Agency) le 2 juin 2020. Le premier correctif a été publié le 22 juin 2020 pour Android 6 et versions ultérieures. Il a été confirmé qu'il fonctionne pour Android 6 et versions ultérieures. Mais le problème affectait toujours Android 5.1. Le second correctif, publié le 30 juillet 2020, a résolu le problème restant avec Android 5.1.

Remerciements

Merci à Jim Mussared pour avoir confirmé ce problème indépendamment et pour diverses discussions liées à ce problème.

Télécharger l’outil