CVE-2024-53071 in Linuxinformazioni

Riassunto

di VulDB • 17/06/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

drm/panthor: Maggiore rigore nei flag di mappatura IO

L'implementazione attuale di `panthor_device_mmap_io()` presenta due problemi:

1. Per la mappatura di `DRM_PANTHOR_USER_FLUSH_ID_MMIO_OFFSET`, `panthor_device_mmap_io()` termina l'esecuzione se è impostato il flag `VM_WRITE`, ma non cancella `VM_MAYWRITE`. Ciò significa che lo spazio utente può utilizzare `mprotect()` per rendere la mappatura scrivibile in un secondo momento. Si tratta di una classica insidia nei driver Linux. Non ritengo che ciò abbia effettivamente impatti nella pratica: Quando la GPU è alimentata, le scritture su FLUSH_ID sembrano essere ignorate; e quando la GPU non è alimentata, la pagina `dummy_latest_flush` fornita dal driver è volutamente progettata per non eseguire alcun flush, quindi l'unica cosa che una scrittura sulla `dummy_latest_flush` potrebbe ottenere sarebbe quella di causare *più* flush.

2. `panthor_device_mmap_io()` non blocca le mappature `MAP_PRIVATE` (che sono mappature senza il flag `VM_SHARED`). L'uso combinato di `MAP_PRIVATE` e `VM_MAYWRITE` indica che la VMA ha semantica copy-on-write, che per `VM_PFNMAP` è parzialmente supportata ma piuttosto problematica ("cursed"). In particolare, in una tale mappatura, il driver può installare solo le PTE durante `mmap()` chiamando `remap_pfn_range()` (perché `remap_pfn_range()` vuole **memorizzare l'indirizzo fisico della memoria fisica mappata nel campo vm_pgoff della VMA**); l'installazione di PTE in un secondo momento tramite un fault handler (come fa panthor) non è supportata nelle mappature private, e quindi se si tenta di generare un fault su una tale mappatura, `vmf_insert_pfn_prot()` va in crash quando incontra il controllo BUG().

Si risolve cancellando il flag VM_MAYWRITE (la scrittura da parte dello spazio utente sul FLUSH_ID non ha senso) e richiedendo VM_SHARED (le semantica copy-on-write per il FLUSH_ID non hanno senso).

I riproduttori di entrambi gli scenari sono presenti nelle note del mio patch sulla mailing list; ho testato che questi bug esistono su una macchina Rock 5B.

Si noti che ho compilato-testato solo la patch, non l'ho eseguita; non dispongo ancora di un setup funzionante per la build del kernel sulla macchina di test. Si prega di testarla prima dell'applicazione.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

Linux

Prenotare

19/11/2024

Divulgazione

19/11/2024

Moderazione

accettato

CPE

pronto

EPSS

0.00196

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!