Imagen ilustrativa generada con IA
Dos cadenas de ataque root en Unitree G1 EDU: una vía de red, una vía Bluetooth
Descubre las vulnerabilidades CVE-2026-76639 y CVE-2026-76640 que permiten acceso root en el robot Unitree G1 EDU a través de red y Bluetooth, con correcciones parciales.
Texto generado por inteligencia artificial, publicado sin revisión humana. Transparencia IA
El 27 de agosto de 2026, el investigador Olivier Laflamme publicó los detalles de dos cadenas de exploits independientes que permiten obtener ejecución de código con privilegios root en el Locomotion PC del robot humanoide Unitree G1 EDU. Las vulnerabilidades, identificadas como CVE-2026-76639 y CVE-2026-76640, siguen rutas diferentes: la primera explota un fallo en la red local, la segunda parte de la proximidad Bluetooth Low Energy y, en su forma original, pasaba por una brecha en el servicio cloud de Unitree.
La cadena network-adjacent: de chat_go a root
CVE-2026-76639 tiene un vector network-adjacent: un atacante debe encontrarse en la misma red que el robot. La falla es una condición de path traversal en el componente chat_go. Al explotarla, se llega a bashrunner, un ejecutable que permite lanzar comandos con privilegios root en el Locomotion PC. El resultado es una ejecución remota de código independiente.
La CVE tiene una puntuación CVSS de 8.8, con vector AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. En la práctica: no se requiere autenticación, no hay interacción del usuario, impacto completo en confidencialidad, integridad y disponibilidad. La complejidad del ataque es baja una vez obtenido el acceso a la red local.
La misma primitiva de path traversal fue luego reutilizada por Laflamme como componente de la segunda cadena, la de Bluetooth.
La cadena BLE: de la proximidad física al root pasando por el cloud
CVE-2026-76640 parte de un presupuesto diferente: la proximidad física al robot. La escritura inicial vía Bluetooth Low Energy acepta la interacción de bootstrap sin requerir el emparejamiento Bluetooth. El material de bootstrap permanece protegido, pero las operaciones posteriores de aprovisionamiento Wi-Fi exigen un estado BLE autenticado de la aplicación. Para superar este paso, el investigador explotó un fallo en el cloud de Unitree.
Durante la investigación, el servicio cloud aceptaba una cuenta Unitree válida para la solicitud de recuperación de claves sin verificar que la cuenta estuviera vinculada al robot del que se solicitaban las claves. Esto permitía obtener claves asociadas a un G1 EDU ajeno. Con la clave recuperada, se establecía el estado BLE autenticado. En ese punto, la cadena alcanzaba el código de aprovisionamiento Wi-Fi, donde un desbordamiento de búfer producía la ejecución root en el Locomotion PC.
La puntuación CVSS de esta CVE es 7.5, con vector AV:A/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H. La complejidad es alta porque requiere varios pasos, pero la barrera inicial sigue siendo solo la proximidad física. La prueba de propagación se limitó a dos robots G1 en una habitación.
La corrección parcial: el cloud fue corregido, el firmware no
Unitree corrigió en julio de 2026 la verificación de propiedad de la cuenta cloud. Al 27 de agosto de 2026, la ruta asistida por cloud requiere una cuenta vinculada al G1 objetivo o la posesión del material de claves. Este cambio interrumpe la prueba de concepto de la cadena BLE tal como se había demostrado.
En cuanto al firmware, sin embargo, no se ha verificado ninguna versión correctiva en las indicaciones públicas de Unitree. Los propietarios del G1 EDU no tienen una versión objetivo confirmada. La actualización del robot de prueba a V1.5.2 no demuestra por sí sola que la anterior V1.5.1.1 esté afectada. The Hacker News se puso en contacto con Unitree para aclarar las versiones de firmware, el ámbito de aplicabilidad y el estado de la corrección. Las posibles respuestas actualizarán el artículo.
Quién está expuesto y qué puede hacer un propietario
El producto afectado es el modelo G1 EDU, que la página oficial de Unitree distingue del G1 estándar. No se confirma la aplicabilidad a otros robots de Unitree. Las CVE afectan al Locomotion PC, el componente que gestiona el movimiento del robot.
Hasta que no esté disponible un parche de firmware verificado, los propietarios pueden reducir el riesgo limitando la exposición de red del Locomotion PC, por ejemplo aislándolo de la LAN o bloqueando el tráfico hacia chat_go. Para el vector BLE, es útil desactivar el Bluetooth cuando no sea necesario y mantener el robot en áreas físicamente controladas. No se sabe si las dos CVE han sido incluidas en el catálogo Known Exploited Vulnerabilities (KEV) de la CISA.
Dos vectores independientes, una misma consecuencia
Las dos cadenas descritas por Laflamme comparten el objetivo final: ejecución de código root en el Locomotion PC. El vector network-adjacent requiere acceso a la red local; el BLE reduce la barrera a solo la proximidad física. La brecha cloud, corregida entretanto, permitía recuperar claves entre robots y transformaba un ataque de proximidad en un robo de credenciales a gran escala.
Los fallos se distribuyen en componentes diferentes: chat_go, bashrunner, el aprovisionamiento Wi-Fi y el servicio cloud. Esto hace que la vulnerabilidad general sea más difícil de mitigar con una sola intervención. Por ahora, la única corrección confirmada es la del lado cloud. El resto queda a la espera de una respuesta oficial de Unitree.
Fuentes
Este artículo es una reelaboración original basada en las siguientes fuentes.
CVE tratadas en este artículo
- CVE-2026-76639HIGH8.8Unitree G1 EDU firmware through 1.5.2 contains an unauthenticated remote code execution vulnerability that allows network-adjacent attackers to execute arbitrary commands as root by chaining three weaknesses: an unauthenticated WebRTC-to-DDS bridge on TCP port 9991, a static AES-128 key stored with
- CVE-2026-76640HIGH7.5Unitree G1 EDU firmware through 1.5.2 contains multiple chained vulnerabilities in the BLE GATT server and WiFi provisioning stack that allow unauthenticated proximate attackers to achieve root code execution without pairing or credentials by exploiting an unquoted heredoc variable in the WiFi provi
