Improper Privilege Management in PebbleOS

1 minute de lecture

Mis à jour :

Gestion défaillante des privilèges dans PebbleOS

Plusieurs appels système (syscalls) de l’OS Pebble permettent une élévation de privilèges ou un accès arbitraire en lecture/écriture mémoire, car ils ne valident pas correctement les arguments fournis par les applications tierces. Ces failles permettent à une application malveillante installée via le magasin d’applications de compromettre totalement la montre (écoute du microphone, blocage permanent de l’appareil).

Points clés :

  • Vecteur d’attaque : Utilisation de syscalls non documentés mais accessibles via la table des symboles.
  • Mécanisme : Les vulnérabilités permettent soit de détourner des pointeurs de fonction (ex: sys_send_pebble_event_to_kernel), soit d’effectuer des lectures/écritures arbitraires en mémoire (ex: sys_accel_manager_get_num_samples, sys_data_logging).
  • Exploitation : L’attaquant peut contourner la fonction prv_drop_privilege pour maintenir des droits élevés après l’exécution du code injecté. Les offsets mémoire nécessaires sont facilement identifiables selon la version du firmware.

Vulnérabilités : Bien qu’aucun identifiant CVE spécifique ne soit mentionné dans l’article, les failles concernent le manque de validation des entrées utilisateur dans les fonctions système suivantes :

  • sys_send_pebble_event_to_kernel
  • sys_accel_manager_get_num_samples
  • sys_event_service_client_subscribe
  • sys_data_logging_create / sys_data_logging_log
  • sys_accel_manager_data_subscribe
  • sys_pebble_log

Recommandations :

  • Mise à jour système : Mettre à jour le firmware vers la version v4.9.177 ou supérieure, qui corrige ces défauts de validation (voir PR #1280 et #1284).
  • Sécurisation du noyau : Implémenter une validation stricte des pointeurs et des buffers fournis par les applications utilisateur au sein du noyau pour garantir qu’ils résident bien dans l’espace mémoire alloué à l’application.

Source