CVE-2026-97989 in Linux
Riassunto
di VulDB • 25/09/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
vduse: validare l'allineamento della coda di virtqueue (virtqueue)
La funzione vduse_validate_config() verifica solo il limite superiore di vq_align. Valori non validi possono quindi raggiungere vring_create_virtqueue_map(). I helper per le split-ring utilizzano align - 1 come maschera bit a bit, pertanto l'allineamento deve essere una potenza di due diversa da zero. Un valore pari a zero fa sì che vring_size() ometta la parte dei descrittori e della available ring (coda disponibile), mentre vring_init() lascia il puntatore alla used ring (coda utilizzata) su NULL.
La specifica VIRTIO richiede che la used ring inizi a un indirizzo allineato ad almeno 4 byte. Rifiutare i valori inferiori a VRING_USED_ALIGN_SIZE, nonché quelli non corrispondenti a potenze di due, prima che raggiungano gli helper della virtio ring.
L'apertura di un dispositivo virtio-net creato con vq_align=0 ha innescato:
BUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100 Lettura di dimensione 2 all'indirizzo 0000000000000000 da parte del task systemd-network/1062
Call Trace (frame rilevanti): dump_stack_lvl print_report kasan_report __asan_load2 virtqueue_kick_prepare_split+0xe3/0x100 virtqueue_kick_prepare+0x40/0x60 try_fill_recv+0x857/0x1250 virtnet_open+0x189/0x460 __dev_open+0x225/0x390 __dev_change_flags+0x368/0x3b0 netif_change_flags+0x56/0xc0 do_setlink.isra.0+0x68c/0x1e30
Validare il valore prima che raggiunga gli helper della virtio ring.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.