CVE-2026-98841

CVE-2026-98841

published October 18, 2026

CVSS
—
EPSS
0%
Percentile
5.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

virt: vmgenid: set driver_data before registering notification handlers

Both probe paths register their notification handler before assigning

driver_data, which the handler dereferences.

In the devicetree path, the notification IRQ can fire as soon as

devm_request_irq() registers the handler: the interrupt may already be

pending at probe time, for example when a VMM injects the

generation-changed notification while restoring a guest from a snapshot

that was taken before the driver had probed (Firecracker does exactly

this on snapshot restore). The IRQ is also requested with IRQF_SHARED,

so another device sharing the line can trigger the handler just as

early. The handler then calls vmgenid_notify(), which dereferences the

still-NULL driver_data and panics:

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010

CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.38+ #1 PREEMPT(none)

Hardware name: linux,dummy-virt (DT)

pc : vmgenid_notify.isra.0+0x24/0x8c

lr : vmgenid_of_irq_handler+0x14/0x34

Call trace:

vmgenid_notify.isra.0+0x24/0x8c (P)

vmgenid_of_irq_handler+0x14/0x34

__handle_irq_event_percpu+0x44/0x1bc

handle_irq_event+0x4c/0xb4

handle_fasteoi_irq+0xf8/0x1f8

The ACPI path has the same ordering problem: the handler is installed

with acpi_install_notify_handler() before driver_data is assigned.

ACPI notifications are dispatched asynchronously from a workqueue, so

the window is narrow, but a notification arriving between the two calls

hits the same NULL dereference.

Assign driver_data before registering the handlers. The state is fully

initialized at that point, so the handlers are safe to run. Should

registration fail, the probe error path leaves no dangling pointer

behind: the driver core clears driver_data in device_unbind_cleanup().

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00168 · 5.7th percentile
Published
2026-10-18T20:17Z
References (4)
EPSS history
Timeline
  • 20 OCT 03:34Z
    EPSS moved — → 0%
    epss
  • 18 OCT 15:50Z
    virt: vmgenid: set driver_data before registering notification handlers
    cvelistv5
  • 18 OCT 15:50Z
    virt: vmgenid: set driver_data before registering notification handlers
    cvelistv5