
Analisi e prove di concetto per CVE-2021-30862, bug RCE con un clic in iOS iTunes U
Nel 2021, CodeColorist ha pubblicato i suoi report sulle vulnerabilità Mistuned, una serie di vulnerabilità che interessano l'iTunes Store consentendo l'esecuzione remota di codice con un solo clic. In particolare, ha dimostrato di far apparire la calcolatrice senza alcuna corruzione di memoria, ma solo con un bug logico. In questo periodo stavo indagando sugli schemi URL in varie app, perché due anni prima avevo segnalato un problema di sicurezza relativo allo schema URL itms-services:// dell'App Store. Uno schema URL che ho trovato piuttosto simile era quello di iTunes U, itms-itunesu://. All'epoca però non sapevo che accettasse input fornito dall'utente e pensavo che servisse solo per aprire l'app, ma in seguito ho capito che non era così.
Leggendo il suo report, una cosa mi ha colpito in particolare: la fuga dalla sandbox di Jung Hoon Lee utilizzando itmss:// durante il Pwn2Own 2014. All'epoca, l'iTunes Store accettava URL arbitrari e li caricava volentieri nel suo SUWebView, anche se non provenivano da Apple (CVE-2014-8840). A questo punto, potreste indovinare dove voglio arrivare. Ho notato che itmss:// era molto simile allo schema URL di iTunes U, quindi ho deciso di vedere se iTunes U avrebbe caricato google.com nella sua vista web. E guarda un po', lo ha fatto. Poi ho deciso di provare a utilizzare la stessa API di iTunes usata dai bug Mistuned nel tentativo di far apparire la calcolatrice, senza aspettarmi affatto che funzionasse, ma con mia grande sorpresa, ha funzionato. Si scopre che sia iTunes Store che iTunes U condividono la stessa API. E per quanto riguarda la UAF di Mistuned? Era presente anche in iTunes U? Si scopre che anche in questo caso era presente, e sono riuscito a creare un proof-of-concept che crasha iTunes U tramite un doppio free della memoria (POC_6.html). Ho allegato alcuni dei POC che ho inviato ad Apple, così come un tentativo di fakeobj/addrof primitive da questa vulnerabilità in main.js con l'aiuto del report di Mistuned, anche se se non ricordo male, non sono riuscito a far funzionare completamente la primitiva fakeobj. Potete leggere il report di CodeColorist per maggiori informazioni sull'impatto di queste vulnerabilità, ma in breve, consentono di recuperare molti dati sensibili dalla vittima e potenziale RCE con un solo clic.