
Zero-day in AppleMediaServices: un errore nel recupero del bag disabilita la firma Mescal/Absinthe. Le richieste ai servizi Apple procedono senza firma, esponendo a rischi di downgrade, replay e bypass. Include analisi, prove dai log e logica d'attacco PoC.
Sommario
Questa problematica costituisce una vulnerabilità Zero-Day attiva e riflette un difetto sistemico di progettazione in AppleMediaServices.framework, piuttosto che una regressione o un bug specifico di una versione.
Una critica vulnerabilità di tipo fail-open nel framework AppleMediaServices di Apple consente di disabilitare silenziosamente la firma delle richieste se un file di configurazione remoto (il "Bag") non riesce a caricarsi. La vulnerabilità interessa iOS, macOS, tvOS e watchOS.
Quando il Bag non può essere recuperato — a causa di manipolazione DNS, timeout o interferenze di rete — i daemon di AppleMediaServices disabilitano la firma Mescal/Absinthe e inviano richieste non firmate ai server Apple. Queste richieste sono prive di protezioni di integrità ed espongono gli utenti ad attacchi di downgrade e replay.
Evidenze dai Log:
Scoperta
Sistemi Interessati
Tutte le piattaforme Apple che utilizzano AppleMediaServices.framework sono interessate.
I daemon interessati includono:
Panoramica della Vulnerabilità
I dispositivi Apple recuperano un Bag di configurazione dinamico dal seguente endpoint:
https://bag.itunes.apple.com/bag.xml?deviceClass=...&format=json
Questa configurazione include flag come useAMSMescal, mescalURL e absintheURL, che determinano se le richieste in uscita debbano essere firmate.
Se il Bag non riesce a caricarsi, AppleMediaServices registra il guasto nei log, disabilita la logica di firma e invia richieste non firmate. Non esiste alcuna validazione della firma, controllo di integrità o meccanismo di fallback imposto. Il Bag non è autenticato né firmato, rendendo lo stato di sicurezza vulnerabile a interferenze di rete.
Prova di Concetto
Prerequisiti:
Passaggi di sfruttamento:
Bloccare o manomettere l'accesso all'endpoint del Bag utilizzando risposte DNS NXDOMAIN, handshake TCP interrotti o risposte ritardate.
Osservare i log di sistema che indicano che il Bag non è riuscito a caricarsi e che le firme Mescal/Absinthe vengono saltate.
Attivare componenti di sistema (ad es. App Store, app Musica) affinché inviino richieste. Monitorare il traffico di rete e confermare l'assenza delle intestazioni di firma:
Risultato:
Il traffico non firmato viene trasmesso agli endpoint Apple senza verifica. Ciò consente manipolazione, replay e altri rischi per l'integrità.
Modelli di Minaccia
bag.itunes.apple.comAMSBagManager tramite Frida o jailbreak per sovrascrivere i flag di sicurezzaMitigazioni Consigliate
Configurazione Firmata Firmare il Bag utilizzando CMS, JWT o HMAC e verificare le firme lato client.
Default Fail-Secure AppleMediaServices dovrebbe bloccare il traffico dipendente dalla firma quando il Bag non può essere recuperato o validato.
Applicazione Lato Server Le API backend di Apple dovrebbero rifiutare le richieste non firmate che richiedono la protezione Mescal o Absinthe.
Cache Validata Il contenuto del Bag dovrebbe essere memorizzato nella cache solo quando supera i controlli di integrità e rientra nei vincoli di scadenza definiti.
Giustificazione della Gravità
I dispositivi Apple si affidano a richieste firmate per la fiducia — dall'App Store alla riproduzione dei media. Se quelle firme scompaiono ogni volta che un file di configurazione non riesce a caricarsi, gli attaccanti su una rete Wi-Fi possono eliminare l'integrità e iniettare o riprodurre traffico all'insaputa dell'utente. Una singola richiesta del Bag non riuscita significa che le garanzie di sicurezza di Apple falliscono in modalità fail-open.