
Rapport technique de CVE-2025-24104 : une évasion de sandbox iOS via un contournement de validation de lien symbolique dans la restauration de sauvegarde, permettant des lectures de fichiers arbitraires hors du sandbox.
J'ai signalé un bogue qu'Apple a ensuite référencé sous le nom CVE-2025-24104. Dans mon rapport initial, j'ai montré comment une sauvegarde malveillante pouvait contourner les restrictions du bac à sable. Cependant, la description initiale d'Apple indiquait que cette vulnérabilité pouvait conduire à des modifications de fichiers système protégés. Je souhaite rétablir la vérité : ce bogue permet en réalité à un attaquant de lire des fichiers arbitraires en dehors du bac à sable.
En creusant le problème, j'ai constaté que la vulnérabilité provient d'un manque de validation des liens symboliques lors du processus de restauration de sauvegarde. Plus précisément, si vous créez une sauvegarde où le fichier
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist
est remplacé par un lien symbolique, le système finit par lire un fichier de votre choix, même s'il se trouve en dehors du bac à sable.
La faille :
Le service lockdown mc_mobile_tunnel ne vérifie pas si CloudConfigurationDetails.plist est un lien symbolique. Si c'est le cas, le service suit le lien, permettant à un attaquant de récupérer le contenu de n'importe quel fichier restreint.
Étapes pour reproduire :
CloudConfigurationDetails.plist est un lien symbolique pointant vers n'importe quel fichier restreint.GetCloudConfiguration au service com.apple.mobile.MCInstall. Au lieu d'obtenir le contenu attendu, le service a renvoyé le contenu du fichier vers lequel mon lien symbolique pointait.La capacité de lire des fichiers arbitraires en dehors du bac à sable est un problème grave. Cela signifie que des données système sensées être protégées pourraient être exposées à des attaquants. Ce n'est pas un bogue mineur, mais une faille de sécurité fondamentale dans la gestion des sauvegardes.
Pour corriger ce problème, le processus de restauration de sauvegarde nécessite une vérification plus rigoureuse :
CloudConfigurationDetails.plist, le service doit vérifier qu'il s'agit d'un fichier normal et non d'un lien symbolique. Si c'est un lien symbolique, la restauration doit soit le rejeter, soit le traiter de manière sécurisée.Avec la sortie d'iOS 18.3, Apple a introduit des vérifications supplémentaires dans le framework ManagedConfiguration pour supprimer tout lien symbolique trouvé dans le dossier ConfigurationProfiles. Plus précisément :
MCRemoveFileIfSymlink a été ajoutée.MCFixHostileSymlinks.ConfigurationProfiles est identifié comme un lien symbolique, il est immédiatement supprimé.Vous pouvez voir les détails de la bindiff ici :
https://github.com/blacktop/ipsw-diffs/blob/main/18_2_22C152__vs_18_3_22D5034e/DYLIBS/ManagedConfiguration.md
Voici une capture d'écran de mon propre diff montrant où les nouvelles vérifications ont été ajoutées :

Il convient de mentionner que cette nouvelle atténuation ne corrige pas le problème à 100 %. J'ai déjà trouvé une méthode pour la contourner car Apple n'a pas implémenté ma correction recommandée, mais je garderai ces détails privés.
Ceci est mon compte rendu personnel de CVE-2025-24104, soulignant que la description initiale d'Apple était inexacte. Le vrai risque est la lecture non autorisée de fichiers hors du bac à sable, et non la modification de fichiers système.
Exploit découvert par Hichem Maloufi (ifpdz)