Le OnePlus Nord 2 présente une vulnérabilité qui permet à un attaquant d’obtenir un accès illimité au shell root. Lisez la suite pour en savoir plus !
Beaucoup d'entre nous ici chez XDA-Developers ont commencé à parcourir les forums pour la première fois lorsque nous cherchions à rooter nos appareils Android. À cette époque, les gens s'appuyaient souvent sur des méthodes de « racine en un clic »: des applications ou des scripts contenant des charges utiles qui ciblent les vulnérabilités connues d'élévation de privilèges du micrologiciel existant pour obtenir la racine accéder. Grâce aux améliorations et aux modifications apportées au chiffrement, aux autorisations et à la gestion de la confidentialité, les appareils Android modernes sont relativement à l'abri de tels vecteurs d'attaque, mais il restera toujours une marge de manœuvre. exploits et vulnérabilités.
OnePlus a peut-être consolidé son nom parmi les principaux constructeurs OEM Android, mais ses téléphones sont pas un étranger à
Arrière-plan
De nos jours, quand on parle d'avoir un accès root sur un smartphone Android, les gens pensent généralement à corriger l'image de démarrage stock avec Magisk d'abord, puis en faisant clignoter l'image corrigée sur le périphérique cible après le déverrouillage du chargeur de démarrage. De cette façon, l'utilisateur final peut avoir un accès supervisé au binaire « su » via une application de gestion. Quelques autres approches expérimentales existent, mais ils sont rarement autant utilisés par le grand public.
En ce qui concerne la pré-production, le scénario est totalement différent. Lors de la préparation du micrologiciel d'un appareil, les ingénieurs doivent activer divers paramètres de journalisation, y compris l'accès root. Même sur un utilisateurdebug construire, le démon Android Debug Bridge (adbd) s'exécute en tant que root, afin que l'on puisse avoir un accès privilégié au shell à des fins de débogage. Lorsque le micrologiciel est prêt à être expédié, tous ces paramètres de débogage doivent être désactivés avant de le déployer.
Mais que se passe-t-il si vous oubliez de le faire? Nous verrons comment les versions officielles d’OxygenOS pour le OnePlus Nord 2 comportent un tel défaut.
OnePlus Nord 2 - Vulnérabilité du shell racine
Certains constructeurs OEM, comme Samsung, proposent une fonctionnalité de chargement latéral des packages de mise à jour lors de la récupération des stocks sur les appareils vendus au détail. Dans ce cas, le adbd
Le binaire s'exécute avec un privilège considérablement élevé lors du chargement latéral, mais il se ferme dès que le processus de mise à jour est terminé. En dehors de cela, aucun accès ADB n’est autorisé dans un environnement de récupération fourni par le fabricant OEM.
OnePlus ne permet plus aux utilisateurs de flasher un package ZIP de mise à jour via sa récupération de stock via le chargement latéral ADB. En supposant que tout le reste est configuré comme il se doit, l'environnement de récupération d'un appareil OnePlus standard devrait être à l'abri des attaquants délivrant tout type de charge utile à l'aide d'ADB. Malheureusement, tout ne se passe pas comme prévu dans le cas du OnePlus Nord 2.
Comme il s'avère, n'importe qui peut créer un shell de débogage Android avec le privilège root dans l'environnement de récupération du OnePlus Nord 2. L'un des paramètres de débogage critiques a apparemment été intégré aux versions de production, ce qui conduit à ce problème.
Exploiter la faille du OnePlus Nord 2
Tout ce que vous avez à faire est de redémarrer le OnePlus Nord 2 en mode de récupération. Un attaquant peut prendre l'appareil et utiliser une simple combinaison de boutons matériels pour le forcer à passer en mode de récupération. En fait, il n’est pas nécessaire d’accéder au menu de récupération proprement dit, car la section vulnérable précède cela. Le mérite revient au membre senior XDA AndroPlus pour faire remarquer l’existence de ce problème en octobre 2021.
- Lorsque le téléphone est éteint, appuyez simultanément sur les boutons de réduction du volume et d'alimentation jusqu'à ce que vous voyez le logo OnePlus avec une minuscule bannière « MODE DE RÉCUPÉRATION » dans le coin inférieur gauche de l'écran.
- Ensuite, vous devriez voir l'écran de sélection de la langue. Pas besoin d’avancer, car nous pouvons initier l’accès à la BAD directement à partir d’ici.
- Connectez maintenant le téléphone à un PC (ou Mac) à l'aide du câble USB. Si vous utilisez Windows, vous pouvez voir une nouvelle interface de débogage USB Android apparaître dans le Gestionnaire de périphériques. Vous devrez peut-être également installer un Pilote USB Android avant que Windows puisse reconnaître le nouveau périphérique. Les utilisateurs de Linux et macOS, en revanche, peuvent utiliser le
lsusb
commande pour détecter la présence de la nouvelle interface matérielle. - Étant donné que vous disposez déjà de la dernière version de BAD et Fastboot utilitaires installés sur votre PC/Mac, lancez une instance d'invite de commande/PowerShell/Terminal et exécutez la commande suivante :
Il devrait répertorier le Nord 2 en mode de récupération. Ceci est également particulièrement intéressant, car l’invite d’autorisation ADB standard n’est pas nécessaire ici. Vous pouvez obtenir une erreur « périphérique non autorisé », mais effacer la base de données de clés ADB RSA existante du PC hôte et redémarrer le serveur ADB devraient éventuellement vous permettre de l'obtenir.adb devices
- Maintenant, instruisez
adbd
pour exécuter en tant que root :
Cette commande peut prendre beaucoup de temps et vous obtiendrez probablement une erreur de délai d'attente. Néanmoins, maintenantadb root
adbd
devrait être exécuté en tant que root. - Enfin, vérifiez le niveau de privilège du shell à l'aide de la commande suivante :
adb shell whoami
L'étendue du défaut
Les abus potentiels de cette faille de sécurité sont effrayants. Avec une attaque réussie sur le OnePlus Nord 2, un attaquant peut vider chaque partition de l'appareil. En conséquence, l’intégralité de la partition de données – y compris les fichiers stockés dans les répertoires de données privés généralement inaccessibles des applications – est accessible à l’attaquant. Dans le cas où la partition de données serait cryptée (en raison de la définition d'un code PIN ou d'un mot de passe par l'utilisateur), le vidage pourrait toujours être utile pour une analyse médico-légale.
De plus, vous pouvez pousser un exécutable vers /data/local/tmp
et exécutez-le à partir de là. Il s’agit d’un vecteur d’attaque classique, qui peut être utile pour charger en chaîne un autre exploit. De plus, puisque vous pouvez désormais appeler le setprop
utilitaire en tant que root pour modifier diverses valeurs d'accessoires, vous pouvez techniquement détourner certaines des variables privilégiées spécifiques aux OEM. Enfin et surtout, même si les options de développement ne sont pas déverrouillées, le téléphone vous demandera automatiquement un accès au débogage USB après avoir invoqué ADB en cours de récupération et redémarrage dans l'environnement Android standard, ce qui signifie que la portée de la vulnérabilité ne se limite pas à la section de récupération seulement.
Notez que vous ne pouvez pas installer de fichiers APK à l'aide d'ADB dans l'environnement de récupération car l'utilitaire Package Manager n'y est pas accessible.
Comment vérifier si votre OnePlus Nord 2 est concerné? (Indice: c'est le cas)
Comme mentionné précédemment, vous pouvez exploiter cette vulnérabilité à la fois sur l'édition standard et sur l'édition spéciale Pac-Man du OnePlus Nord 2. En un mot, si vous entrez un shell racine (vous saurez quand le symbole du shell passe de $
à #
), alors vous saurez que le défaut est présent.
Nous avons réussi à obtenir un accès root au shell sur le dernier firmware public indien et européen OxygenOS pour l'appareil, ce qui signifie chaque unité OnePlus Nord 2 est vulnérable au moment de la rédaction de cet article.
Et après?
Nous suivrons cette affaire à mesure que de plus amples informations seront disponibles. OnePlus a fourni la déclaration suivante à ce sujet :
Nous prenons la confidentialité et la sécurité très au sérieux. Nous accordons la priorité à cette question et nous partagerons une mise à jour dès que nous aurons plus d’informations.
Même si tout cela semble effrayant, gardez à l’esprit qu’un attaquant devra toujours accéder physiquement au téléphone pour obtenir un accès au shell root. Jusqu'à ce que OnePlus déploie une mise à jour corrigeant la vulnérabilité, essayez de garder votre OnePlus Nord 2 à l'écart des étrangers. Bien que nous n’ayons rencontré aucun cas d’utilisation malveillante, on ne peut exclure une telle possibilité car la vulnérabilité existe depuis au moins 2 mois maintenant.