RedHat: problemi con i driver grafici Intel

Da qualche giorno si continua ad investigare il problema della CVE-2019-14615 che, a causa di un mancato controllo di strutture da parte dell’hardware grafico Intel, potrebbe permettere ad un attaccante di leggere diverse informazioni sul sistema.

Nonostante questo problema affligga solo la schede Intel di tipo Gen7, Gen7.5 e Gen9 (che comunque sono molto diffuse), e che la stessa vulnerabilità pare essere abbastanza critica, al momento il contenuto di quella CVE continua ad essere marcato come privato.

Red Hat, però, ha un portale per i bug (bugzilla) aperto a tutti e ne è presente uno aperto proprio riguardante quella CVE da cui è possibile, seppur in maniera molto generica, capire qual’è la superficie di attacco:

How it works:
1 – Userspace creates a batchbuffer
2 – Batchbuffer sent to kernel via ioctl
3 – ioctl (2) issues it as an “Execution Unit” for the hardware.
4 – The kernel schedules another process to run.
5- Another process (running as user) can access the previous Execution Unit results by re-using Execution Units results.

Come funziona:
1 – Lo userspace [l’area di esecuzione riservata ai processi non kernel] crea un batchbuffer [un set di istruzioni lette ed eseguite dalla GPU]
2 – Il batchbuffer viene inviato al kernel tramite ioctl [una syscall]
3 – ioctl lo schedula come una “Execution Unit” per l’hardware
4 – Il kernel schedula un altro processo per l’esecuzione
5 – Un altro processo (in esecuzione come utente) può accedere ai risultati della “Execution Unit” eseguita riutilizzando i risultati delle “Execution Unit”

Vediamo quindi come, in soldoni, è possibile utilizzare questo funzionamento del driver Intel per schedulare del codice da utente, farlo eseguire a livello kernel, ed accedere poi sempre da utente ai risultati di questo codice (stiamo semplificando).

La cosa interessante, mentre si aspetta la patch (la proposta in bugzilla copre solo i processori Skylake e superiori) è la mitigazione proposta da Red Hat stessa: disattivare il driver i915 dal kernel.

Certo, la maggior parte delle installazioni Red Hat probabilmente è server, senza interfaccia grafica o con poca rilevanza la qualità della stessa, ma tutte le installazioni client (o almeno quelle che usano le schede Intel) potrebbero soffrire pesantemente di questa modifica.

The power management functionality of the card will be disabled and the system may draw additional power… Graphical displays may also be at low resolution or not work correctly. This mitigation may not be suitable if the graphical login functionality is required.

La gestione dell’energia della scheda sarà disabilitata, ed il sistema potrebbe richiedere maggiore energia…. I display grafici potrebbero funzionare a bassa risoluzione o non funzionare correttamente. Questa mitigazione potrebbe non essere indicata se la funzionalità di accesso grafico è richiesta.

Come si dice: “Il modo migliore per cancellare tutti i bug di un software è cancellare il software“, però questa soluzione è parecchio drastica. Soprattutto perché, se anche non si necessita di un’interfaccia grafica, potrebbe essere che il sistema perda anche eventuali altre funzionalità (ad esempio quelle legate ad OpenCL, un sistema di calcolo distribuito molto utilizzato).

L’avere un’indicazione di massima su come funziona il bug può farci stare un pochino più tranquilli, considerando che a quanto pare non è sfruttabile da remoto ma necessita di un accesso alla macchina. Certo se viene consigliato di disattivare un driver così utilizzato è presumibile come magari, con il tempo, potrebbero saltare fuori altre superfici di attacco.

Non ci resta che aspettare e vedere se si giungerà rapidamente ad una soluzione.

Utente Linux/Unix da più di 20 anni, cerco sempre di condividere il mio know-how; occasionalmente, litigo con lo sviluppatore di Postfix e risolvo piccoli bug in GNOME. Adoro tutto ciò che può essere automatizzato e reso dinamico, l'HA e l'universo container. Autore dal 2011, provo a condividere quei piccoli tips&tricks che migliorano il lavoro e la giornata.

Tags: , ,