
Exploit per CVE-2023-38571
macOS Music e TV eseguono un rename insicuro che porta a FDA ottenendo il pieno controllo sul TCC.db dell'utente
Ho segnalato questo bug in ticket separati per ciascuna app, sentitevi liberi di unirli se applicabile.
Il problema di fondo è che queste app hanno FDA ma non riescono a sanitizzare le loro operazioni sui file.
Music e TV sono quasi uguali in questo senso, cambiano solo i percorsi. Da qui in poi userò Music come esempio. Per TV, controlla il codice dell'exploit, è molto semplice.
Music ha una funzionalità per copiare file nella libreria dell'utente utilizzando una cartella speciale in cui l'utente può "rilasciare" file.
Un utente può semplicemente creare un file in
~/Music/Music/Media.localized/Automatically Add to Music.localized/
Music prenderà questo file ed eseguirà un rename insicuro in "~/Music/Music/Media.localized/Automatically Add to Music.localized/Not Added.localized".
Se usiamo un TCC.db valido (che l'exploit genera), verrà copiato nella cartella "Not Added.localized" poiché non è un file multimediale. Questo è molto utile, poiché possiamo reindirizzare questo rename nella posizione reale di TCC.db usando una semplice symlink race.
L'exploit è tecnicamente una race condition, tuttavia è così affidabile che non ho nemmeno implementato un tentativo di riprova poiché riesce sempre al primo colpo.
Utilizzo per music:
DEBUG=1 ./librarian.py 1
Utilizzo per tv:
DEBUG=1 ./librarian.py 2
Per resettare il tcc db tra i test:
launchctl stop com.apple.tccd launchctl start com.apple.tccd sleep 1 tccutil reset All