Un investigador de seguridad logró obtener la ejecución de código arbitrario y una shell interactiva en las gafas inteligentes Ray-Ban de Meta explotando un fallo en la forma en que las gafas verifican las herramientas de desarrollo. El investigador eludió la verificación de firmas de Meta manipulando un archivo de configuración enviado desde un teléfono inteligente emparejado, lo que resalta un problema significativo de límite de confianza en la arquitectura de seguridad del dispositivo ponible.

Una persona usando las gafas inteligentes Meta Ray-Ban mientras mira un teléfono inteligente.
Las gafas inteligentes Meta Ray-Ban están emparejadas con un teléfono inteligente para gestionar la configuración y las actualizaciones de firmware.p0pcycle.com

Esta imagen ilustra el hardware y el mecanismo de emparejamiento con el teléfono inteligente utilizado por el investigador para manipular los archivos de configuración.

Extracción de firmware e inyección de APK

El investigador comenzó extrayendo el firmware de las gafas utilizando la aplicación Meta AI. Al usar Frida para enganchar la clase `OTAArtifactInfo` de la aplicación, interceptaron la URL de actualización del CDN. Además, manipularon las entradas GraphQL de la aplicación para solicitar una actualización de firmware completa en lugar de una incremental, lo que les permitió volcar y montar el sistema de archivos del dispositivo.

Una vez adquirido el firmware, el investigador identificó una forma de ejecutar código personalizado. En la versión de firmware 126, las gafas no verificaban si el APK del Device Access Toolkit (DAT) —una herramienta para que los desarrolladores interactúen con las gafas— estaba firmado por Meta. Esto permitió al investigador intercambiar la aplicación DAT legítima por una versión autofirmada propia.

“Introducir la verificación de firmas es una cosa; asegurar que su cumplimiento no pueda ser eludido a través de una configuración no confiable es otra muy distinta.”

— Hacking the meta ray-ban smartglasses

Depuración y adquisición de shell

Debido a que las gafas inteligentes carecen de pantalla o consola, el investigador utilizó una secuencia de pitidos de audio a través de `android.media.ToneGenerator` para señalar el progreso de su código inyectado. Esto les permitió depurar problemas, como un error de tiempo de espera donde la aplicación oficial Camera Access cerraba la conexión si no detectaba la aplicación DAT esperada.

Para establecer una conexión persistente, el investigador enganchó la aplicación Camera Access para solicitar un 'high link lease' a la aplicación Meta AI. Esto obligó a las gafas a entrar en un grupo Wi-Fi Direct en una subred específica. Al vincular un escuchador al puerto TCP 31337 en las gafas, el investigador pudo usar `nc` (netcat) desde su teléfono para entrar en una shell interactiva con ejecución a nivel de shell.

Elusión del cumplimiento de firmas

Meta finalmente abordó el fallo de inyección de APK en el firmware 127 aplicando la verificación de firmas para el APK del DAT. Sin embargo, el investigador descubrió que esta comprobación estaba regida por un indicador de configuración (`signature_verification_enabled`) obtenido del teléfono emparejado. Las gafas aceptaban este archivo de configuración siempre que fuera estructuralmente correcto, incluso si había sido manipulado.

Al cambiar un solo byte en el archivo `0.mctable` de `0x80` a `0x00`, el investigador desactivó la comprobación de firmas. Esto les permitió reinstalar su APK autofirmado y recuperar el acceso a la shell. El investigador informó estos hallazgos a Meta a través de su plataforma de recompensas por errores, y se cree que el problema ha sido parcheado.

Qué dicen los lectores de Hacker News

  • Pregunta abierta: Un comentarista cuestionó si la demostración califica como una verdadera vulnerabilidad de seguridad, sugiriendo que obtener acceso a un dispositivo que uno ya posee y tiene emparejado con un teléfono inteligente podría ser más parecido a instalar un emulador de terminal. comentario ↗
  • Pregunta abierta: Otro usuario planteó preguntas sobre las limitaciones prácticas del exploit, preguntando específicamente sobre su robustez frente a las actualizaciones de software y si la falta de persistencia limita su impacto. comentario ↗
  • Pregunta abierta: Un comentarista diferente argumentó que es un hack porque el dispositivo restringe intencionadamente las acciones del usuario, y expresaron su intención de probar el método mientras desactivan las actualizaciones automáticas. comentario ↗

Resumen de opiniones del hilo de Hacker News; no son hechos verificados. Leer el debate completo ↗