CVE-2026-80620 in Linux
Zusammenfassung
von VulDB • 28.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
Rückgängigmachen von „PCI/MSI: MSI-X-Bereich bei Fehler entladen“ (Unmap MSI-X region on error)
Dieser Vorgang reverted den Commit 1a8d4c6ecb4c81261bcdf13556abd4a958eca202.
Der Commit 1a8d4c6ecb4c („PCI/MSI: MSI-X-Bereich bei Fehler entladen“) fügte im Fehlerpfad von `msix_capability_init()` ein `iounmap(dev->msix_base)` hinzu, um den MSI-X-Bereich freizugeben, wenn `msix_setup_interrupts()` fehlschlägt.
Wenn `msix_setup_interrupts()` fehlschlägt, lautet die Aufrufkette:
msix_setup_interrupts() -> __msix_setup_interrupts() struct pci_dev *dev __free(free_msi_irqs) = __dev; ... return ret; // __free-Bereinigung wird bei Fehler ausgelöst
Die `__free(free_msi_irqs)`-Bereinigungsroutine ruft `pci_free_msi_irqs()` auf, das den Entladevorgang bereits behandelt:
void pci_free_msi_irqs(struct pci_dev *dev) {
pci_msi_teardown_msi_irqs(dev); if (dev->msix_base) {
iounmap(dev->msix_base); // hier bereits entladen dev->msix_base = NULL; // und auf NULL gesetzt } }
Somit wird `dev->msix_base` entladen und auf NULL gesetzt, bevor `msix_setup_interrupts()` an `msix_capability_init()` zurückkehrt. Der durch den Commit 1a8d4c6ecb4c („PCI/MSI: MSI-X-Bereich bei Fehler entladen“) eingeführte Sprung „goto out_unmap“ ruft dann ein zweites Mal `iounmap()` mit einem NULL-Zeiger auf.
Dies wurde auf Intel Emerald Rapids (192 CPUs) reproduziert, während das Skript tools/testing/selftests/kexec/test_kexec_jump.sh ausgeführt wurde:
WARNING: CPU#44 at iounmap+0x2a/0xe0 RIP: 0010:iounmap+0x2a/0xe0 RDI: 0000000000000000 Call Trace: msix_capability_init+0x317/0x3f0 __pci_enable_msix_range+0x21d/0x2c0 pci_alloc_irq_vectors_affinity+0xa9/0x130 nvme_setup_io_queues+0x2a8/0x420 [nvme]
nvme_reset_work+0x151/0x340 [nvme]
...
RDI=0 bestätigt, dass `iounmap()` mit NULL aufgerufen wird.
Stellen Sie den ursprünglichen Sprung „goto out_disable“ wieder her und überlassen Sie das Entladen der vorhandenen `__free(free_msi_irqs)`-Bereinigungsroutine.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.