Vulnerabilidad JavaScript en Google Glass: WebView, Metasploit y QR maliciosos

  • El fallo en WebView y addJavascriptInterface permite a JavaScript invocar código Java con los permisos de la app anfitriona.
  • Metasploit y ataques MITM en Wi‑Fi públicas demuestran la viabilidad de obtener shell y ejecutar acciones como cámara o micrófono.
  • Los códigos QR maliciosos y emparejados Bluetooth amplían la superficie de ataque más allá de la simple navegación.
  • Mitigaciones: limitar JavaScript en WebView, usar @JavascriptInterface, HTTPS, VPN, y cautela con permisos y QR.

Vulnerabilidad Javascript Google Glass

Lo que se ha descubierto es que un problema que afectaba a la versión antes indicada del desarrollo de los de Mountain View está presente en las Google Glass. Esta vulnerabilidad permite ejecutar código JavaScript y es algo que se localizó en Android en su día. Con ella se puede acceder utilizando una WebView y, de esta forma, los atacantes pueden ejecutar los programas que inserten de forma intencionada y disponer de los permisos de la app anfitriona. En definitiva, que es posible “inyectar” malware en el sistema operativo de las gafas y que sea funcional.

Esto se ha conocido en el marco de las pruebas Metasploit, un ambiente de trabajo de código abierto en el que se pueden realizar pruebas específicas. Se ha conseguido acceder a partes internas del navegador de Android (y muchos de sus derivados), lo que también afecta a las Google Glass como explicó Joshua J. Drake, que indicó que “que la ejecución de este tipo de código malicioso es funcional en mis Google Glass XE12”.

actualización Google Glass XE8 novedades
Artículo relacionado:
Google Glass XE9: todas las novedades, contexto y evolución hacia Android XR

Las Google Glass recibirán la actualización XE9 con varias novedades

En realidad, el problema se encuentra en las aplicaciones que se generan para Android, ya que estas ejecutan código HTML mediante el uso de WebView y, como este aspecto se ve afectado por la vulnerabilidad antes mencionada, es posible utilizar el JavaScript correspondiente. De esta forma, las gafas de Google se pueden ver afectadas. Esto, por ejemplo, viene dado por la inserción de publicidad o los manuales en línea en los programas que se ejecutan. Además, el fallo está relacionado con addJavascriptInterface(): en niveles de API ≤16 el puente JavaScript–Java permitía exponer métodos sensibles, mientras que en API más recientes la anotación @JavascriptInterface limita qué se expone y reduce la superficie de ataque.

En definitiva, el llevar código Android en las Google Glass —algo por otro lado normal— tiene ciertos riesgos y uno de ellos es la exposición a ataques externos, que se producen de forma constante. Evidentemente esto no afecta todavía a los usuarios, ya que el poder conseguir este producto no es viable en las tiendas habituales. Pero lo cierto es que habría que estar atentos a este tema, ya que si se están utilizando estas gafas y se ve que se pierde el control de ellas, puede ser algo de lo más simpático… ¡digno de los Simpsons!

Vía: Android Authority.

Cómo se explota en la práctica: WebView, addJavascriptInterface y ataques MITM

En escenarios reales, el ataque suele comenzar cuando una app de terceros crea una WebView para cargar contenidos (páginas, ads, ayuda, etc.). Si JavaScript está activo y se usa addJavascriptInterface() de forma laxa, un sitio malicioso puede invocar métodos Java de la app con sus permisos. Con módulos de Metasploit se ha demostrado la obtención de shell en navegadores derivados de Android y, mediante un man-in-the-middle en Wi‑Fi públicas o mal aseguradas, es viable secuestrar la sesión de esa WebView. A partir de ahí, el código inyectado podría intentar acciones como tomar fotos, activar el micrófono o filtrar datos, dependiendo de los permisos que conceda la aplicación huésped.

Otro vector confirmado: códigos QR maliciosos y emparejados Bluetooth

Investigadores de Lookout mostraron que se podía utilizar un código QR manipulado para provocar que Glass se conectara de manera silenciosa a un punto de acceso controlado por un atacante o que intentara un emparejado Bluetooth no deseado. Con el control del tráfico, un adversario puede forzar redirecciones a sitios con malware o husmear cargas y descargas. Este vector amplía el problema: no hace falta que la víctima navegue voluntariamente a una web peligrosa; basta con escanear un QR aparentemente inocente en un póster o camiseta. Google corrigió rápidamente esta debilidad, pero sirve para recordar que, a medida que más dispositivos vestibles se conectan, emergen nuevas superficies de ataque.

Riesgos colaterales: privacidad, conducción y shoulder surfing

Colectivos como Consumer Watchdog han advertido de riesgos de privacidad y de distracción al conducir por el uso de pantallas en el campo de visión. Más allá del malware, la mera presencia de una cámara portátil facilita el shoulder surfing: con una app que analice el movimiento de los dedos al teclear es posible inferir PIN y passcodes desde varios metros, incluso usando reflejos (técnicas como ShoulderPad o iSpy lo demostraron). Mitigaciones como teclados con disposición aleatoria para introducir PIN y el uso de biometría reducen el riesgo, aunque no lo eliminan por completo.

Medidas de mitigación recomendadas (usuarios y desarrolladores)

Para usuarios:

  • Evitar Wi‑Fi públicas o no cifradas; si es inevitable, usar VPN.
  • No escanear QR de origen dudoso y revisar qué acciones provocan.
  • Restringir permisos de apps y desinstalar las que no sean esenciales.
  • Activar bloqueos robustos (PIN largo, biometría) y cubrir el teclado en lugares públicos.

Para desarrolladores:

  • Deshabilitar JavaScript en WebView por defecto (enable only if needed).
  • Evitar addJavascriptInterface() o, si es imprescindible, exponer solo lo mínimo con @JavascriptInterface y validar inputs.
  • Forzar HTTPS estricto, activar Safe Browsing, usar Network Security Config y, cuando aplique, certificate pinning.
  • Separar permisos en componentes con menor privilegio y revisar el uso de WebViewClient/shouldOverrideUrlLoading para bloquear redirecciones.
  • Mantener dependencias y SDK actualizados; evitar compilar con APIs antiguas vulnerables.

La combinación de un fallo heredado en WebView, vectores como los QR maliciosos y el contexto de privacidad convierte a Google Glass en un caso de estudio sobre cómo la comodidad y la ubicuidad abren puertas a nuevas amenazas. Con buenas prácticas de desarrollo, cautela al conectarse y políticas claras de permisos, es posible reducir drásticamente el riesgo sin renunciar al potencial del dispositivo.