CVE-2026-97989
Zusammenfassung
von VulDB • 25.09.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
vduse: Ausrichtung des Virtqueues validieren
vduse_validate_config() überprüft nur die Obergrenze von vq_align. Ungültige Werte können daher vring_create_virtqueue_map() erreichen. Die Hilfsfunktionen für Split-Rings verwenden align - 1 als Bitmaske, sodass die Ausrichtung eine nicht-null Potenz von zwei sein muss. Ein Wert von null bewirkt, dass vring_size() den Deskriptor- und Available-Ring-Anteil entfernt und vring_init() den Used-Ring-Zeiger auf NULL setzt.
Der VIRTIO-Standard verlangt, dass der Used-Ring an einer Adresse beginnt, die um mindestens 4 Byte ausgerichtet ist. Werte unter VRING_USED_ALIGN_SIZE sowie keine Potenzen von zwei werden abgelehnt, bevor sie die virtio ring helpers erreichen.
Das Öffnen eines mit vq_align=0 erstellten Virtio-net-Geräts löste Folgendes aus:
BUG: KASAN: null-ptr-deref in virtqueue_kick_prepare_split+0xe3/0x100 Lesezugriff der Größe 2 bei addr 0000000000000000 durch Task systemd-network/1062
Call Trace (relevante Frames): 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
Den Wert validieren, bevor er die virtio ring helpers erreicht.
VulDB is the best source for vulnerability data and more expert information about this specific topic.