Radoslaw Karpowicz, un ricercatore che si occupa di sicurezza informatica, ha individuato una falla nel meccanismo di aggiornamento che mette a disposizione il framework Sparkle, componnete usato da alcune applicazioni Mac quali VLC, Adium, Pixelmator e altre ancora.
Il frameork Sparkle Updater consente di automatizzare le procedure di aggiornamento senza bisogno che gli utenti verifichino manualmente la disponibilità di aggiornamenti. Tecnicamente si tratta di un meccanismo lato client, un task relativamente semplice da implementare per gli sviluppatori che prevede la comunicazione con l’update server Sparkle detto “AppCast server”. AppCast sfrutta un protocollo simile al formato RSS, inviando dei flussi che permettono di verificare a intervalli regolari a presenza di aggiornamenti per le applicazioni senza che l’utente debba farlo manualmente visitando i vari siti dei produttori.
Le informazioni sugli update sono inviate mediante messaggi XML. Karpowicz ha scoperto che le informazioni sono inviate mediante il protocollo HTTP (in chiaro), non garantendo sicurezza a livello di cifratura, integrità del traffico, uautenticazione del server e dell’utente. Il ricercatore ha verificato la possibilità di predisporre un attacco MitM (Man in the Middle, un meccanismo che consente all’attaccante di leggere, inserire o modificare a piacere, messaggi tra due parti comunicanti tra di loro), evidenziando la possibilità di modificare i messaggi XML e inserire codice malevolo.
Poiché le librerie Sparkle sfruttano il componente WebView per elaborare alcuni dati confezionati nel file XML, Karpowicz è stato in grado di “fare leva” su questo punto d’ingresso attivando ed eseguendo codice sul sottostante OS X. Sfruttando questo tipo di attacco sarebbe dunque teoricamente possibile compromettere in remoto un sistema, spigendo l’utente a eseguire aggiornamenti da server modificati ad hoc.
Lo sviluppatore ha anche dimostrato la possibilità di forzare il sistema per allocare grandi quantità di memoria nella procedura di aggiornamento creando una sorta di attacco DoS (Denial of Service), un malfunzionamento dovuto a un attacco con il quale si esauriscono deliberatamente le risorse di un sistema.
Gli sviluppatori di Sparkle Updater sono stati avvisati e hanno rilasciato la versione 0.13.1 del framework, risolvendo il problema. Sul sito di Karpowicz sono riportate le spiegazioni tecniche complete su come verificare se un’app per Mac è vulnerabile o no alla falla in questione. Il problema riguarda ovviamente solo le app di terze parti e non quelle scaricate dal Mac App Store.