
Resoconto tecnico di CVE-2025-24104: una fuga dalla sandbox iOS tramite bypass della validazione dei symlink nel ripristino del backup, che consente la lettura arbitraria di file al di fuori della sandbox.
Ho segnalato un bug che Apple ha successivamente tracciato come CVE-2025-24104. Nel mio rapporto originale, ho dimostrato come un backup malevolo potesse essere utilizzato per eludere le restrizioni della sandbox. Tuttavia, la descrizione iniziale di Apple affermava che questa vulnerabilità potesse portare a modifiche di file di sistema protetti. Voglio chiarire la situazione: questo bug consente effettivamente a un attaccante di leggere file arbitrari al di fuori della sandbox.
Quando ho approfondito la questione, ho scoperto che la vulnerabilità deriva da una mancanza di una corretta validazione dei symlink durante il processo di ripristino del backup. Nello specifico, se si crea un backup in cui il file
/private/var/containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles/Library/ConfigurationProfiles/CloudConfigurationDetails.plist
viene sostituito con un collegamento simbolico, il sistema finisce per leggere un file a scelta dell'attaccante—anche se si trova al di fuori della sandbox.
Il difetto:
Il servizio lockdown mc_mobile_tunnel non controlla se CloudConfigurationDetails.plist è un symlink. Se lo è, il servizio segue il collegamento, consentendo a un attaccante di recuperare il contenuto di qualsiasi file riservato.
Passaggi per riprodurre:
CloudConfigurationDetails.plist è un symlink che punta a qualsiasi file riservato.GetCloudConfiguration al servizio com.apple.mobile.MCInstall. Invece di ottenere il contenuto del file previsto, il servizio ha restituito il contenuto del file a cui puntava il mio symlink.La capacità di leggere file arbitrari al di fuori della sandbox è un problema serio. Significa che dati sensibili di sistema, che dovrebbero rimanere protetti, potrebbero essere esposti agli attaccanti. Questo non è solo un bug minore—è una falla di sicurezza fondamentale nel modo in cui vengono gestiti i backup.
Per risolvere questo problema, il processo di ripristino del backup necessita di un controllo più rigoroso:
CloudConfigurationDetails.plist, il servizio dovrebbe verificare che sia un file regolare e non un symlink. Se è un symlink, il ripristino dovrebbe o rifiutarlo o gestirlo in modo sicuro.Con il rilascio di iOS 18.3, Apple ha introdotto controlli aggiuntivi nel framework ManagedConfiguration per rimuovere eventuali symlink trovati nella cartella ConfigurationProfiles. Nello specifico:
MCRemoveFileIfSymlink.MCFixHostileSymlinks.ConfigurationProfiles viene identificato come symlink, viene immediatamente eliminato.Puoi vedere i dettagli del bindiff qui:
https://github.com/blacktop/ipsw-diffs/blob/main/18_2_22C152__vs_18_3_22D5034e/DYLIBS/ManagedConfiguration.md
Di seguito è riportato uno screenshot del mio diff che mostra dove sono stati aggiunti i nuovi controlli:

Vale la pena menzionare che questa nuova mitigazione non risolve il problema al 100%. Ho già trovato un metodo per bypassarla perché Apple non ha implementato la mia correzione consigliata, ma terrò privati quei dettagli.
Questo è il mio resoconto personale di CVE-2025-24104, sottolineando che la descrizione originale di Apple non centrava il bersaglio. Il vero rischio è la lettura non autorizzata di file al di fuori della sandbox, non modifiche a file di sistema.
Exploit trovato da Hichem Maloufi (ifpdz)