CVE-2026-64124 in Linux
Riassunto
di VulDB • 20/07/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
net: devmem: rifiuta l'associazione di dma-buf con una dimensione o lunghezza SG non allineata ai page
net_devmem_bind_dmabuf() si fida che dmabuf->size e sg_dma_len() siano multipli di PAGE_SIZE senza effettuare verifiche:
- tx_vec è dimensionato come dmabuf->size / PAGE_SIZE, e net_devmem_get_niov_at() effettua il controllo dei limiti solo su virt_addr < dmabuf->size prima di indicizzare tx_vec[virt_addr / PAGE_SIZE]. Con size = N*PAGE_SIZE + r (1 <= r < PAGE_SIZE), sendmsg() con iov_base = N*PAGE_SIZE supera il controllo dei limiti e legge tx_vec[N] -- un elemento oltre i confini.
- owner->area.num_niovs = len / PAGE_SIZE mentre gen_pool_add_owner() copre l'intera lunghezza in byte len, quindi una SG finale non multipla di page desincronizza num_niovs dalla regione gen_pool per ogni successiva SG, sia su RX che su TX.
dma-buf non richiede dimensioni allineate ai page, pertanto il percorso di bind deve imporre ciò che la propria indicizzazione presuppone. Rifiuta entrambi i casi con -EINVAL.
Il controllo della dimensione è limitato alla sola trasmissione (solo tx_vec è dimensionato in base a dmabuf->size); il controllo della lunghezza SG copre entrambe le direzioni.
If you want to get best quality of vulnerability data, you may have to visit VulDB.