
Exploit for CVE-2023-38571
Les applications Musique et TV de macOS effectuent un renommage non sécurisé aboutissant à une FDA en obtenant le contrôle total du TCC.db de l'utilisateur.
J'ai signalé ce bogue dans des tickets séparés pour chaque application, n'hésitez pas à les fusionner si nécessaire.
Le problème sous-jacent est que ces applications disposent de la FDA mais ne parviennent pas à nettoyer leurs opérations sur les fichiers.
Musique et TV sont presque identiques à cet égard, seuls les chemins diffèrent. Je prends Musique comme exemple à partir de maintenant. Pour TV, veuillez consulter le code de l'exploit, il est très simple.
Musique dispose d'une fonctionnalité pour copier des fichiers dans la bibliothèque de l'utilisateur en utilisant un dossier spécial dans lequel l'utilisateur peut « déposer » des fichiers.
Un utilisateur peut simplement créer un fichier dans
~/Music/Music/Media.localized/Automatically Add to Music.localized/
Musique prendra ce fichier et effectuera un renommage non sécurisé vers "~/Music/Music/Media.localized/Automatically Add to Music.localized/Not Added.localized".
Si nous utilisons un TCC.db valide (que l'exploit génère), il sera copié dans le dossier "Not Added.localized" car ce n'est pas un fichier média. Cela est très utile, car nous pouvons rediriger ce renommage vers l'emplacement réel de TCC.db en utilisant une simple course de liens symboliques.
L'exploit est techniquement une condition de course, mais il est si fiable que je n'ai même pas implémenté de réessai car il réussit toujours du premier coup.
Utilisation pour musique :
DEBUG=1 ./librarian.py 1
Utilisation pour tv :
DEBUG=1 ./librarian.py 2
Pour réinitialiser la base de données TCC entre les tests :
launchctl stop com.apple.tccd launchctl start com.apple.tccd sleep 1 tccutil reset All