Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2020-14292 — Detalles de CVE-2020-14292 | Kitploit
Herramientas/GitHubGitHub/alwentiu/cve-2020-14292
Seguridad AndroidSeguridad BluetoothAnálisis de VulnerabilidadesSeguridad InalámbricaSeguridad MóvilPrivacidad
GitHubalwentiu/cve-2020-14292

CVE-2020-14292

Detalles de CVE-2020-14292

Ver Repositorio
25hace 6 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2020-14292: Un problema de transporte bluetooth en la aplicación COVIDSafe

Autor: Alwen Tiu, Universidad Nacional de Australia

Última actualización: 2020-09-08

Resumen

En la aplicación COVIDSafe hasta la versión 1.0.21 para Android, el uso inseguro de la opción de transporte Bluetooth en la conexión GATT permite a atacantes engañar a la aplicación para que establezca una conexión a través del transporte Bluetooth BR/EDR, lo que revela la dirección Bluetooth pública del teléfono de la víctima sin autorización, evitando la protección de aleatorización de direcciones Bluetooth en el teléfono del usuario. Este problema se rastrea mediante CVE-2020-14292.

Descripción técnica

La causa del problema está en la función startWork, donde se realiza una conexión GATT usando connectGatt, pero no se especificó ninguna opción de transporte.

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

Esto hará que Android use la opción TRANSPORT_AUTO para el transporte al iniciar la conexión Bluetooth. Parece que, en la implementación de Android, esto se predeterminará a BR/EDR si el periférico al que se conecta es un dispositivo de modo dual (que soporta tanto BR/EDR como LE); esto puede deberse a la siguiente implementación del cliente GATT en Android, ver por ejemplo, este código (fragmento de código relevante incluido a continuación):

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

Dado que la aleatorización de direcciones MAC no es compatible con BR/EDR, el central revelará su dirección de identidad al periférico.

  Para lanzar un ataque, el atacante anuncia un servidor GATT en un dispositivo de modo dual (BR/EDR + LE), utilizando la dirección pública (esta parte es importante, ya que de lo contrario la degradación no ocurrirá y el central de Android utilizará el transporte LE). Esto hará que la aplicación COVIDSafe use el transporte BR/EDR, en lugar del transporte LE, para conectarse al periférico, lo que provoca que se revele la dirección pública del teléfono. Esto funciona para todos los teléfonos y versiones de Android probados.

  Para Android 6 y posteriores, la solución es simple: simplemente especificar la opción de transporte explícitamente.

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

Sin embargo, esto no funciona para Android 5.1 (API Level 22), porque ese método no está expuesto en la API. En realidad está ahí pero está oculto. Entonces, para Android 5.1, una posible solución implica usar una reflexión para llamar a ese método oculto. Estas correcciones se han implementado en COVIDSafe (Android) v1.0.48.

Sin embargo, la corrección para Android 5.1 puede no funcionar el 100% de las veces; mis pruebas indicaron que todavía había fuga de direcciones de identidad. Esto podría deberse a la falla de la técnica de reflexión en tiempo de ejecución; se necesitarán más investigaciones.

Implicaciones de seguridad y privacidad

La posesión de la dirección de identidad de un teléfono permitiría a un atacante rastrear el teléfono cuando su bluetooth está encendido y está dentro del alcance bluetooth del atacante. Algunas vulnerabilidades relacionadas con bluetooth (por ejemplo, CVE-2020-0022) dependen del conocimiento de la dirección de identidad para realizar más ataques, por lo que existe la posibilidad de encadenar este ataque con otros. Consulte este documento para conocer algunas de las consecuencias de que el atacante posea la dirección de identidad.

Recomendación

Se recomienda encarecidamente a los usuarios de la versión Android de la aplicación COVIDSafe que actualicen su aplicación. Para aquellos que usan Android 5, se recomienda apagar el bluetooth cuando se encuentren en una situación donde no se requiera la funcionalidad bluetooth.

Cronología de divulgación

Este problema se informó por primera vez a la Agencia de Transformación Digital del Gobierno Australiano el 2 de junio de 2020. La primera corrección se lanzó el 22 de junio de 2020, para Android 6 y superior. Se ha confirmado que funciona para Android 6 y superior. Pero el problema aún afectaba a Android 5.1. La segunda corrección, lanzada el 30 de julio de 2020, abordó el problema restante con Android 5.1.

Agradecimientos

Agradecimientos a Jim Mussared por confirmar este problema de forma independiente y por varias discusiones relacionadas con este problema.

Descargar herramienta