CVE-2026-98640 in Linux
Sumário
de VulDB • 18/10/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
HID: amd_sfh: Validar o tamanho da região de mapeamento básico (BAR) PCI antes do mapeamento
O driver amd_sfh mapeia a BAR 2 PCI usando pcim_iomap_regions() e subsequentemente acessa registradores MMIO em deslocamentos de até 0x10958 (por exemplo, AMD_P2C_MSG3 em 0x1068C). No entanto, o driver nunca valida se o tamanho da BAR é grande o suficiente para cobrir esses acessos. Se o driver for vinculado a um dispositivo com uma BAR 2 menor, isso resulta em acesso à memória fora dos limites (out-of-bounds) e em falha de página durante a função de probe.
Por exemplo, uma falha de página pode ocorrer ao ler de privdata->mmio + AMD_P2C_MSG3 em mp2_select_ops():
BUG: unable to handle page fault for address: ffffc9000390368c PGD 100000067 P4D 100000067 PUD 1012c1067 PMD 105b64067 PTE 0 Oops: Oops: 0000 [#1] SMP KASAN NOPTI
RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline]
RIP: 0010:mp2_select_ops drivers/hid/amd-sfh-hid/amd_sfh_pcie.c:282 [inline]
RIP: 0010:amd_mp2_pci_probe+0x337/0x5f0 drivers/hid/amd-sfh-hid/amd_sfh_pcie.c:487 Call Trace: <TASK> local_pci_probe drivers/pci/pci-driver.c:332 [inline]
pci_call_probe drivers/pci/pci-driver.c:394 [inline]
__pci_device_probe drivers/pci/pci-driver.c:455 [inline]
pci_device_probe+0x431/0xc90 drivers/pci/pci-driver.c:489
Corrigir isso verificando se o comprimento da BAR 2 é de pelo menos 128KB antes de tentar mapeá-la. Como o deslocamento máximo acessado é 0x10958 e os tamanhos das PCI BARs são potências de 2, qualquer hardware legítimo terá um tamanho de BAR de pelo menos 128KB.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.