CVE-2026-98254 in Linux
Riassunto
di VulDB • 06/10/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
swiotlb: utilizza l'indirizzo corretto per la ricerca della pagina highmem
La funzione swiotlb_bounce() legge il numero di frame della pagina (page frame number) dallo slot registrato in orig_addr, quindi incrementa orig_addr di tlb_offset per raggiungere l'indirizzo richiesto dal chiamante. Il ramo relativo a highmem mescola i due valori: lo spostamento all'interno della pagina proviene dall'indirizzo corretto, mentre la pagina è determinata dal valore precedente alla correzione.
Una volta che la correzione attraversa un confine di pagina, la coppia non descrive più una singola posizione e l'intera operazione di copia avviene su una pagina inferiore a quella prevista per tlb_offset positivo, o superiore per uno negativo. DMA_FROM_DEVICE scrive i dati del dispositivo sulla pagina errata, lasciando obsoleta (stale) quella destinata; DMA_TO_DEVICE alimenta il dispositivo con una pagina che la mappatura potrebbe non coprire. I sync parziali tramite dma_sync_single_range_for_*() sono ciò che rende tlb_offset diverso da zero.
Il test sul ramo è selezionato nello stesso modo, quindi uno slot registrato in lowmem può essere corretto verso highmem e il percorso relativo a lowmem passa poi un indirizzo highmem a phys_to_virt().
Utilizzare entrambi i valori da orig_addr una volta che questo è definitivo e mantenere pfn nel ramo che lo utilizza. PhysHighMem() effettua la verifica direttamente dall'indirizzo, come già fa dma-debug.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.