Ai tempi del Super Nintendo (SNES per gli amici) non esistevano certo tutte le codifiche audio ad oggi note; le musichine che allietavano le nostre giocate erano invece contenute in particolari file, tali SPC.
File che alcuni riproduttori multimediali sono in grado di riconoscere e riprodurre tutt’oggi, soprattutto quelli che si basano su GStreamer – che, per chi non lo sapesse, è il framework multimediale usato da numerose distribuzioni di Linux basate su GNOME e derivate. Unica richiesta: bisogna “ingannare” il lettore multimediale rinominando il file affinché questo venga riprodotto.
E qui arrivano le brutte notizie: una vulnerabilità proprio in Gstreamer può far sì che un sistema Linux venga in qualche modo violato semplicemente riproducendo un file audio SPC! L’exploit, che fino a martedì è rimasto 0-day, risponde al nome di Blargg (sì, come il draghetto di Super Mario World che spunta dalla lava).
Come funziona l’exploit Blargg
Senza scendere nei dettagli tecnici, è possibile “nascondere” all’interno dei file audio SPC alcune istruzioni che permettono di far partire altri programmi sfruttando un bug nella gestione della memoria di Gstreamer; fortunatamente questi programmi vengono eseguiti con i permessi dell’utente corrente, dunque Blargg è un exploit che di per sé non permette di scalare privilegi di root.
Non bisogna comunque escludere che, combinandolo con altri exploit o altri eseguibili, ciò non possa essere possibile. Parlando praticamente, una volta “nascoste” le istruzioni nel file SPC in questione basta rinominarlo in MP3, FLAC o qualsiasi formato “riconosciuto” dai riproduttori multimediali ed eseguirlo.
A riprova Chris Evans, che ha scoperto la vulnerabilità, ha pubblicato due video che dimostrano il funzionamento di Blargg – uno girato su Ubuntu, l’altro su Fedora.
Nell’esempio si vede come basta riprodurre un file SPC “mascherato” da FLAC o MP3 per eseguire la calcolatrice.
Chi è vulnerabile
Praticamente tutti i sistemi operativi dotati di framework GStreamer sono potenzialmente vulnerabili a questo bug; per fortuna, le installazioni “server” spesso non comprendono alcun tipo di codec o riproduttore multimediale e per la maggiore possono ritenersi al sicuro.
Come già detto Blargg non prevede di suo una scalata ai privilegi elevati, per fortuna, tuttavia si tratta di un interessante problema di sicurezza che non va di certo preso sotto gamba.
Come posso difendermi?
Al momento la difesa migliore, se non si vuole rinunciare a Gstreamer, è quella di non riprodurre MP3 o altri file audio di ignota provenienza; Blargg è rimasto uno 0day per qualche tempo, tuttavia Chris Evans ha pubblicato a corredo dell’exploit anche una patch che risolve il problema – e che sarà probabilmente inclusa già nel prossimo aggiornamento di Gstreamer.
Per tutti gli aspetti tecnici su questa vulnerabilità vi consigliamo di dare una lettura al post originale di Chris Evans, che spiega nei dettagli la modalità di funzionamento dell’exploit, le zone di memoria interessate e quant’altro.