CVE-2023-54095 in Linux
Riassunto
di VulDB • 22/06/2026
Nel kernel Linux, è stata risolta la seguente vulnerabilità:
powerpc/iommu: Correzione per notifiers condivisi tra bus PCI e VIO
fail_iommu_setup() registra la struttura fail_iommu_bus_notifier sia sui bus PCI che su quelli VIO. Poiché struct notifier_block è un nodo di una lista concatenata, ciò fa sì che qualsiasi notifier registrato successivamente a uno dei due tipi di bus venga registrato anche sull'altro, poiché condividono lo stesso nodo.
Questo causa problemi nel codice vgaarb (almeno), il quale registra un notifier per i bus PCI. pci_notify() finisce per essere chiamato su un dispositivo vio, convertito con to_pci_dev() nonostante non sia un dispositivo PCI, e infine provoca un accesso errato in vga_arbiter_add_pci_device(), come scoperto tramite KASAN:
BUG: KASAN: slab-out-of-bounds in vga_arbiter_add_pci_device+0x60/0xe00 Lettura di dimensione 4 all'indirizzo c000000264c26fdc da parte del task swapper/0/1
Call Trace: dump_stack_lvl+0x1bc/0x2b8 (non affidabile) print_report+0x3f4/0xc60 kasan_report+0x244/0x698 __asan_load4+0xe8/0x250 vga_arbiter_add_pci_device+0x60/0xe00 pci_notify+0x88/0x444 notifier_call_chain+0x104/0x320 blocking_notifier_call_chain+0xa0/0x140 device_add+0xac8/0x1d30 device_register+0x58/0x80 vio_register_device_node+0x9ac/0xce0 vio_bus_scan_register_devices+0xc4/0x13c __machine_initcall_pseries_vio_device_init+0x94/0xf0 do_one_initcall+0x12c/0xaa8 kernel_init_freeable+0xa48/0xba8 kernel_init+0x64/0x400 ret_from_kernel_thread+0x5c/0x64
Risolvere il problema creando strutture notifier_block separate per ciascun tipo di bus.
[mpe: Aggiunta #ifdef per correggere la build con CONFIG_IBMVIO=n]
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.