Neutron, notre moteur d’IA, a obtenu un score de 97,1 % sur le benchmark CyberGym de l’UC Berkeley. En savoir plus

Analyse approfondie

Analyse approfondie

worse_query : évasion du bac à sable iOS et accès aux données des apps

Une évasion du bac à sable iOS 26 et 27 permet à une app hors App Store de lire les données d'autres apps ; les mises à jour du 9 novembre ne la corrigent pas.

En bref

  • Une preuve de concept publique nommée worse_query échappe au bac à sable iOS et atteint les conteneurs d'autres apps. Une app avec un groupe d'apps peut demander au gestionnaire une extension de bac à sable vers un chemin arbitraire.
  • La preuve de concept indique iOS 26.0 à 26.7.2 et iOS 27.2. Apple a publié iOS 27.2.1 et iOS 26.7.3 le 9 novembre 2026, sans correctif de bac à sable dans les notes.
  • Aucune CVE n'est attribuée, et Apple n'a publié ni avis ni version corrigée. Binance a averti le 10 novembre 2026 que des secrets de portefeuille pourraient être exposés ; aucune attaque ni aucun vol n'est signalé. Sans CVE, la faille ne figure pas au catalogue Known Exploited Vulnerabilities (KEV) de la CISA au 10 novembre 2026.
  • Supprimez les apps installées hors App Store, restreignez l'installation sur les appareils gérés et considérez tout iPhone ayant exécuté une app sideloadée non fiable comme exposé. Voir « Comment corriger ? ».

Suis-je concerné ?

Toutes ces conditions doivent être réunies :

  • Vous utilisez un iPhone ou un iPad dont la version est atteinte par l'évasion. La preuve de concept indique iOS 26.0 à 26.7.2 et iOS 27.2. Des outils dérivés revendiquent aussi iOS 27.2.1.
  • L'appareil contient une app installée hors App Store, ou une app contrôlée par l'attaquant, avec un conteneur de groupe d'apps. La preuve de concept publique a besoin d'un groupe d'apps, et les outils de sideloading en créent un automatiquement.
  • L'app s'exécute sur l'appareil. L'évasion démontrée est locale au téléphone ; ce n'est pas une attaque réseau à distance.

La preuve de concept publique atteint le conteneur de données de chaque app et certains dossiers système sous iOS 27. Son README liste les chemins qu'elle peut ouvrir :

/var/containers/Data/System (iOS 27)
/var/containers/Shared/SystemGroup/* (iOS 27)
/var/mobile/Containers/Data/Application/*
/var/mobile/Containers/Data/InternalDaemon/*
/var/mobile/Containers/Data/PluginKitPlugin/*
/var/mobile/Containers/Shared/AppGroup/*
Ligne iOS Fonctionnel selon les sources Version corrigée
iOS 26 26.0 à 26.7.2, selon le README de la preuve de concept Aucune. Les notes de sécurité d'iOS 26.7.3 ne mentionnent pas de correctif de bac à sable.
iOS 27 27.2, selon le README ; un outil dérivé revendique 27.2.1 Aucune. Les notes de sécurité d'iOS 27.2.1 ne mentionnent pas de correctif de bac à sable.

Vérifiez la version installée sur l'appareil dans Réglages, Général, puis Informations. La version apparaît sur le premier écran.

Pour un parc géré, listez les appareils et leurs versions depuis la console de gestion des appareils mobiles. Listez ensuite les apps installées hors du catalogue géré. Un iPhone qui n'exécute que des apps de l'App Store relève d'un autre cas d'exposition qu'un appareil qui exécute des versions sideloadées.

Comment corriger ?

Il n'existe pas de correctif. Apple n'a publié ni avis, ni CVE, ni version d'iOS corrigée pour worse_query, et les mises à jour du 9 novembre ne la mentionnent pas. Ces étapes réduisent l'exposition jusqu'à ce qu'Apple livre un correctif :

  1. Supprimez les apps installées hors App Store, y compris les versions installées avec AltStore, SideStore ou un service de signature. Supprimez l'app et son profil de configuration.
  2. Sur les appareils gérés, bloquez l'installation hors du catalogue d'apps géré. Sur les appareils non gérés, utilisez Temps d'écran pour empêcher l'installation d'apps lorsque c'est possible.
  3. Mettez iOS à jour vers la dernière version. Cela ne ferme pas cette évasion, mais cela corrige les failles qu'Apple a corrigées le 9 novembre.
  4. Pour un portefeuille ou un compte qui stockait des secrets sur l'appareil, déplacez les fonds ou le compte vers un nouveau portefeuille créé sur un appareil propre. Réinitialisez les sessions actives, comme Binance l'a conseillé.
  5. Examinez les profils de configuration installés dans Réglages, Général, VPN et Gestion de l'appareil, et supprimez tout profil que vous ne pouvez pas justifier.

Supprimer une app sideloadée retire la copie de l'évasion de cet appareil. Cela n'annule pas l'accès déjà effectué. Si une app non fiable s'est exécutée sur le téléphone, considérez les données des conteneurs des autres apps comme potentiellement lues.

Quelle est la cause racine ?

L'évasion abuse de l'API d'extension de bac à sable du gestionnaire de conteneurs. Une app peut demander au gestionnaire l'accès à une partie de son conteneur de groupe d'apps. Le gestionnaire suit un lien symbolique contrôlé par l'app puis émet une extension pour la cible du lien.

iOS isole les apps dans des bacs à sable. Un conteneur contient les données d'une app, et un groupe d'apps permet à plusieurs apps de partager un conteneur. Quand une app a besoin d'accéder à un chemin, le gestionnaire de conteneurs peut émettre une extension de bac à sable. L'app consomme ce jeton pour étendre son bac à sable à ce chemin.

La preuve de concept appelle l'interface de requête privée du gestionnaire. Elle demande la classe 7, la classe des groupes d'apps, et la partie 3, le répertoire Library/Caches du groupe :

query_set_class(query, 7); // appGroup
query_set_group_identifiers(query, identifier);
query_set_part(query, 3); // Library/Caches
...
void *result = query_get_single_result(query);
char *token = copy_sandbox_token(result);
int64_t handle = consume_extension(token);

Avant la requête, l'app supprime le répertoire Library/Caches de son groupe et le recrée comme lien symbolique vers le chemin cible :

[files removeItemAtPath: caches error: nil];
[files createSymbolicLinkAtPath: caches withDestinationPath: target error: nil];

La requête résout la partie demandée via le système de fichiers. Le gestionnaire de conteneurs suit le lien symbolique, décide que la cible résolue est le chemin à autoriser, et renvoie une extension de bac à sable pour elle. Il ne vérifie pas que le chemin résolu reste dans le conteneur du groupe d'apps. L'app consomme le jeton et peut alors ouvrir le chemin cible.

La preuve de concept inclut aussi pathleak, un outil qui force les numéros d'inode avec fsgetpath() pour retrouver les chemins UUID des autres conteneurs. Cela transforme un chemin cible connu en liste de tous les conteneurs d'apps de l'appareil.

Comment la faille est-elle exploitée ?

Une app malveillante ou sideloadée exécute l'évasion localement, obtient une extension de bac à sable vers un répertoire cible, puis lit ou modifie des fichiers appartenant à d'autres apps.

  1. La victime installe une app hors App Store, ou une app contrôlée par l'attaquant. Les outils de sideloading créent le conteneur de groupe d'apps nécessaire à l'évasion.
  2. L'app supprime le répertoire Library/Caches de son groupe d'apps et le remplace par un lien symbolique vers un chemin cible.
  3. L'app appelle l'API de requête du gestionnaire de conteneurs pour la partie Library/Caches du groupe. Le gestionnaire suit le lien et émet une extension de bac à sable pour la cible.
  4. L'app consomme l'extension avec sandbox_extension_consume().
  5. L'app répète la requête pour d'autres chemins. pathleak énumère les répertoires de conteneurs des autres apps par inode, et l'app demande une extension pour chacun.
  6. L'app lit des fichiers comme les bases de données, documents, cookies et configurations. Une version de gestionnaire de fichiers nommée WQ Files peut aussi modifier, supprimer et effacer ces données, selon son développeur.

L'évasion n'a pas besoin de jailbreak et n'utilise pas d'exploit du noyau. C'est une faille de logique dans la manière dont le gestionnaire de conteneurs autorise un chemin. La preuve de concept publique est écrite pour les développeurs ; d'autres développeurs ont construit des apps installables à partir d'elle.

Ni Binance ni le chercheur n'ont signalé d'attaque ou de vol. L'avertissement de Binance nomme les classes de données à risque, pas un portefeuille compromis ni un nombre de victimes. La plateforme d'échange n'a nommé aucune app de portefeuille comme exposée, et le chercheur non plus.

Comment se déroule l'attaque ?

Une app sideloadée remplace le répertoire de cache de son groupe d'apps par un lien symbolique. Le gestionnaire de conteneurs émet une extension de bac à sable pour la cible du lien, et l'app l'utilise pour lire ou modifier les données d'autres apps.

flowchart LR A["App sideloadée avec un groupe d'apps"] --> B["Remplacement de Library/Caches par un lien symbolique"] B --> C["Requête sur la partie cache du groupe"] C --> D["Aucune vérification que le chemin reste dans le conteneur"] D --> E["Extension de bac à sable émise pour la cible"] E --> F["Conteneurs d'autres apps lisibles et modifiables"]

Que peut faire un attaquant ?

Un attaquant qui installe une app malveillante sur le téléphone peut lire et modifier les fichiers des conteneurs d'autres apps, ainsi que certains dossiers système sous iOS 27. Cela peut exposer des cookies de session, des documents, des bases de données et tout secret qu'une app stocke dans son conteneur.

Les conditions font partie de l'impact :

  • L'attaquant doit faire installer une app hors App Store, ou une app malveillante disposant d'un conteneur de groupe d'apps. La preuve de concept publique ne montre pas d'installation à distance.
  • L'app doit s'exécuter sur l'appareil. L'évasion est une exécution de code locale dans le bac à sable de l'app, pas un service réseau.
  • La portée correspond aux données que les autres apps gardent dans leurs conteneurs. Binance avertit que des phrases de récupération, des clés privées et des identifiants peuvent être exposés. La plateforme n'a pas identifié d'app de portefeuille qui les stocke dans un chemin atteignable.
  • La preuve de concept publique lit et énumère. Un gestionnaire de fichiers dérivé modifie, supprime et efface aussi des données, selon son développeur.
  • Aucune attaque ni vol n'est signalé, et aucune app de l'App Store n'est confirmée comme utilisant l'évasion.

L'impact est limité par la protection des données des apps iOS. Certains fichiers sont chiffrés avec une clé liée au code de l'appareil et sont illisibles lorsque l'appareil est verrouillé. Les écritures publiques ne mesurent pas quels fichiers restent lisibles dans chaque état de verrouillage ; ne supposez donc pas qu'un téléphone verrouillé protège tous les conteneurs.

Pourquoi le correctif fonctionne-t-il ?

Aucun correctif n'existe, donc rien ne ferme encore l'évasion. La vérification manquante est celle qu'un correctif doit ajouter. Après avoir résolu le chemin demandé, le gestionnaire de conteneurs doit vérifier que le résultat reste dans le conteneur du groupe d'apps avant d'émettre une extension de bac à sable.

Le chemin de code actuel autorise la cible résolue.

L'étape qui échoue est la validation de cette cible par rapport à la racine du conteneur. Une implémentation correcte résoudrait le lien symbolique, comparerait le chemin canonique avec la racine canonique du conteneur et refuserait la requête lorsque la cible est en dehors. Elle devrait aussi gérer un chemin qui change entre la vérification et l'utilisation, ce qui est la course créée par le lien symbolique.

Apple n'a publié aucun correctif, donc cette section ne peut pas en citer un. Le dépôt de la preuve de concept et les notes de sécurité sont le dossier public.

Comment vérifier si j'ai été compromis ?

Aucun indicateur de compromission n'est publié. Vérifiez ce qui est installé sur l'appareil et si une app non fiable a pu s'exécuter.

  • Listez les apps installées hors App Store. Cherchez WQ Files, AltStore, SideStore et les apps de services de signature, ainsi que les apps que vous ne reconnaissez pas.
  • Examinez les profils de configuration dans Réglages, Général, VPN et Gestion de l'appareil. Supprimez les profils que vous ne pouvez pas justifier.
  • Sur un parc géré, comparez l'inventaire des apps installées avec le catalogue géré et signalez chaque app absente du catalogue.
  • Si une app non fiable s'est exécutée sur le téléphone, considérez que les données des conteneurs d'autres apps ont pu être lues. Changez les mots de passe et jetons de session des comptes utilisés sur le téléphone, et déplacez les fonds du portefeuille vers un nouveau portefeuille sur un appareil propre.
  • Conservez l'appareil et ses journaux avant de l'effacer si vous devez enquêter. iOS conserve peu de journaux d'accès aux fichiers des apps, donc l'absence d'entrée ne prouve pas que l'évasion n'a pas été utilisée.

Chronologie

  • 2026-11-08 : Le chercheur forcequit publie la preuve de concept worse_query sur GitHub.
  • 2026-11-09 : Apple publie iOS 27.2.1 et iOS 26.7.3. Aucune des deux notes de sécurité ne mentionne une évasion de bac à sable ou worse_query.
  • 2026-11-10 : Binance avertit les utilisateurs que l'évasion pourrait exposer des secrets de portefeuille, et The Hacker News rapporte l'avertissement.

De la preuve de concept publique à l'avertissement de la plateforme en deux jours
Figure 1 : La preuve de concept apparaît le 8 novembre, les mises à jour d'Apple arrivent le 9 novembre sans correctif, et Binance avertit le 10 novembre. Source : dépôt worse_query et notes de sécurité Apple, vérifiés le 10 novembre 2026

FAQ

Existe-t-il une CVE pour worse_query ?

Non. Aucune CVE n'est attribuée au 10 novembre 2026, et Apple n'a publié aucun avis. Le dépôt de la preuve de concept, les outils dérivés et l'avertissement de la plateforme constituent le dossier public.

Faut-il un jailbreak ?

Non. L'évasion utilise l'interface de requête privée du gestionnaire de conteneurs et un lien symbolique. Elle n'utilise pas d'exploit du noyau, et le chercheur indique qu'elle n'est pas pertinente pour un jailbreak.

Une app de l'App Store peut-elle l'utiliser ?

Ce n'est pas confirmé. La preuve de concept a besoin d'un conteneur de groupe d'apps, que les apps de l'App Store peuvent avoir avec la bonne autorisation. Personne parmi les personnes impliquées n'a dit si une app de l'App Store peut atteindre le chemin vulnérable, et aucune app de l'App Store n'est nommée. Considérez la question comme ouverte.

Quelles versions d'iOS sont concernées ?

Le README de la preuve de concept indique iOS 26.0 à 26.7.2 et iOS 27.2. Un outil dérivé indique iOS 27.2.1, et aucune source publique n'indique iOS 26.7.3. Apple n'a pas confirmé de plage.

Est-elle exploitée dans la nature ?

Aucune attaque ni vol n'est signalé au 10 novembre 2026. Binance a averti du risque et demandé aux utilisateurs de supprimer les apps non fiables et de déplacer les fonds en cas de doute. Un avertissement n'est pas un rapport de victime.

La mise à jour vers iOS 27.2.1 ou 26.7.3 corrige-t-elle la faille ?

Non. Apple a publié les deux le 9 novembre 2026, et leurs notes de sécurité listent d'autres correctifs, pas une évasion de bac à sable. Vérifiez les notes d'Apple pour une version ultérieure avant de supposer qu'une mise à jour ferme la faille.

Références

  • Dépôt forcequitOS/worse_query, « A sandbox escape for iOS 26 and 27, again », créé le 8 novembre 2026, avec la plage de versions du README, les chemins accessibles et le code de la preuve de concept : https://github.com/forcequitOS/worse_query (vérifié le 10 novembre 2026)
  • L'implémentation de la preuve de concept, worse_query/worse_query.m, la requête sur le groupe d'apps, le lien symbolique et la consommation de l'extension : https://github.com/forcequitOS/worse_query/blob/main/worse_query/worse_query.m (vérifié le 10 novembre 2026)
  • L'outil d'énumération de chemins, worse_query/pathleak.m : https://github.com/forcequitOS/worse_query/blob/main/worse_query/pathleak.m (vérifié le 10 novembre 2026)
  • Apple, « About the security content of iOS 27.2.1 and iPadOS 27.2.1 », publié le 9 novembre 2026, sans entrée de bac à sable ni worse_query : https://support.apple.com/en-us/149715 (vérifié le 10 novembre 2026)
  • Apple, « About the security content of iOS 26.7.3 and iPadOS 26.7.3 », publié le 9 novembre 2026, sans entrée de bac à sable ni worse_query : https://support.apple.com/en-us/149716 (vérifié le 10 novembre 2026)
  • The Hacker News, « Binance Warns of iOS Sandbox Escape That Could Expose Crypto Wallet Keys, No Fix Confirmed », 10 novembre 2026, avec les conseils de Binance et la déclaration du chercheur : https://thehackernews.com/2026/11/binance-warns-of-ios-sandbox-escape.html (vérifié le 10 novembre 2026)