CVE-2024-26812CWE-476

CVE-2024-26812

High · published April 5, 2024

CVSS v3.1
7.8
EPSS
0%
Percentile
15.5
In the wild
Unconfirmed
What it is

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

vfio/pci: Create persistent INTx handler

A vulnerability exists where the eventfd for INTx signaling can be

deconfigured, which unregisters the IRQ handler but still allows

eventfds to be signaled with a NULL context through the SET_IRQS ioctl

or through unmask irqfd if the device interrupt is pending.

Ideally this could be solved with some additional locking; the igate

mutex serializes the ioctl and config space accesses, and the interrupt

handler is unregistered relative to the trigger, but the irqfd path

runs asynchronous to those. The igate mutex cannot be acquired from the

atomic context of the eventfd wake function. Disabling the irqfd

relative to the eventfd registration is potentially incompatible with

existing userspace.

As a result, the solution implemented here moves configuration of the

INTx interrupt handler to track the lifetime of the INTx context object

and irq_type configuration, rather than registration of a particular

trigger eventfd. Synchronization is added between the ioctl path and

eventfd_signal() wrapper such that the eventfd trigger can be

dynamically updated relative to in-flight interrupts or irqfd callbacks.

The record
Technical detail
CVSS v3.1
7.8 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00250 · 15.5th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2024-04-05T13:15Z
Affected products (5)
ProductVersionsFixed in
linux/linux_kernel≥ 3.6, < 6.1.846.1.84
linux/linux_kernel≥ 6.2, < 6.6.246.6.24
linux/linux_kernel≥ 6.7, < 6.7.126.7.12
linux/linux_kernel≥ 6.8, < 6.8.36.8.3
debian/debian_linuxall versions—
References (18)
https://git.kernel.org/stable/c/0e09cf81959d9f12b75ad5c6dd53d237432ed034 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/18c198c96a815c962adc2b9b77909eec0be7df4d · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/27d40bf72dd9a6600b76ad05859176ea9a1b4897 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/4c089cefe30924fbe20dd1ee92774ea1f5eca834 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/4cb0d7532126d23145329826c38054b4e9a05e7c · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/69276a555c740acfbff13fb5769ee9c92e1c828e · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/7d29d4c72c1e196cce6969c98072a272d1a703b3 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/b18fa894d615c8527e15d96b76c7448800e13899 · 416baaa9-dc9f-4396-8d5f-8c081fb06d67https://git.kernel.org/stable/c/0e09cf81959d9f12b75ad5c6dd53d237432ed034 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/18c198c96a815c962adc2b9b77909eec0be7df4d · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/27d40bf72dd9a6600b76ad05859176ea9a1b4897 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/4c089cefe30924fbe20dd1ee92774ea1f5eca834 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/4cb0d7532126d23145329826c38054b4e9a05e7c · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/69276a555c740acfbff13fb5769ee9c92e1c828e · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/7d29d4c72c1e196cce6969c98072a272d1a703b3 · af854a3a-2127-422b-91ae-364da2661108https://git.kernel.org/stable/c/b18fa894d615c8527e15d96b76c7448800e13899 · af854a3a-2127-422b-91ae-364da2661108https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html · af854a3a-2127-422b-91ae-364da2661108https://cert-portal.siemens.com/productcert/html/ssa-265688.html · 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
EPSS history
Timeline
  • 05 APR 08:24Z
    vfio/pci: Create persistent INTx handler
    cvelistv5