CVE-2022-4139 è stato reso pubblico oggi come un problema di sicurezza del driver grafico del kernel i915 che interessa tutta la grafica Gen12, dalla grafica Tigerlake integrata fino all’ultima grafica Raptor Lake, nonché il codice Meteor Lake in fase di sviluppo più le GPU discrete di DG2/Alchimista e suono artico.
Intel ha rivelato CVE-2022-4139 come un problema di flushing TLB della GPU errato all’interno del driver grafico del kernel Linux. In alcuni casi il Translation Lookaside Buffer (TLB) non viene scaricato affatto. Per lo meno potrebbero esserci danneggiamenti casuali della memoria o perdite di dati mentre non è stato ancora determinato se la memoria specifica potrebbe essere mirata alle versioni del kernel Linux interessate fino a questo punto. Si ritiene che tutte le versioni da Linux 5.4 fino alle ultime versioni del kernel di oggi siano interessate quando si utilizza la grafica integrata/discreta Intel Gen12. Ciò tuttavia equivale a un problema di driver Intel e non a un problema hardware in sé.
La divulgazione dell’elenco oss-sec dalle note di Intel:
Nel driver del kernel i915 è stato scoperto un codice di svuotamento TLB della GPU errato.
In alcuni casi (hardware Gen12 con specifici tipi di motore) il TLB del motore non viene scaricato affatto. A seconda che la GPU sia in esecuzione dietro un IOMMU attivo, ci sono due possibili scenari che possono verificarsi, a causa della mappatura TLB obsoleta: 1. Senza IOMMU: la GPU può ancora accedere alla memoria fisica che potrebbe essere già assegnata dal sistema operativo a un processo diverso. 2. Con IOMMU: la GPU può accedere a qualsiasi memoria, se il processo dannoso è in grado di creare/riutilizzare i mapping IOMMU necessari.
Al momento non è noto se una memoria specifica potrebbe essere preso di mira, ma il danneggiamento casuale della memoria o la perdita di dati sono una possibilità nota.
Sono interessate tutte le GPU Intel integrate e discrete Gen12, tra cui Tiger Lake, Rocket Lake, Alder Lake, DG1, Raptor Lake, DG2, Arctic Sound, Meteor Lake. La correzione è già stata sviluppata e consiste nel correggere il metodo di scrittura su registri specifici.
Linus Torvalds solo unite queste cinque righe di codice per mitigare l’invalidazione del TLB sulla grafica Intel Gen12 per i motori video e di calcolo.
drm/i915: correzione dell’invalidazione TLB per i motori di calcolo e video Gen12
In caso di motori di calcolo e video Gen12, i registri TLB_INV sono mascherati-per modificare un bit, il bit corrispondente nella metà superiore del registro deve essere abilitato, altrimenti non succede nulla.
Questa piccola patch dovrebbe essere trasferita alla serie stabile di Linux in breve tempo.