CVE-2024-26813
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
05/04/2024
Last modified:
20/12/2024
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
vfio/platform: Create persistent IRQ handlers<br />
<br />
The vfio-platform SET_IRQS ioctl currently allows loopback triggering of<br />
an interrupt before a signaling eventfd has been configured by the user,<br />
which thereby allows a NULL pointer dereference.<br />
<br />
Rather than register the IRQ relative to a valid trigger, register all<br />
IRQs in a disabled state in the device open path. This allows mask<br />
operations on the IRQ to nest within the overall enable state governed<br />
by a valid eventfd signal. This decouples @masked, protected by the<br />
@locked spinlock from @trigger, protected via the @igate mutex.<br />
<br />
In doing so, it&#39;s guaranteed that changes to @trigger cannot race the<br />
IRQ handlers because the IRQ handler is synchronously disabled before<br />
modifying the trigger, and loopback triggering of the IRQ via ioctl is<br />
safe due to serialization with trigger changes via igate.<br />
<br />
For compatibility, request_irq() failures are maintained to be local to<br />
the SET_IRQS ioctl rather than a fatal error in the open device path.<br />
This allows, for example, a userspace driver with polling mode support<br />
to continue to work regardless of moving the request_irq() call site.<br />
This necessarily blocks all SET_IRQS access to the failed index.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.1 (including) | 5.4.274 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (including) | 5.10.215 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (including) | 5.15.154 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (including) | 6.1.84 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (including) | 6.6.24 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.7.12 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8 (including) | 6.8.3 (excluding) |
To consult the complete list of CPE names with products and versions, see this page
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/07afdfd8a68f9eea8db0ddc4626c874f29d2ac5e
- https://git.kernel.org/stable/c/09452c8fcbd7817c06e8e3212d99b45917e603a5
- https://git.kernel.org/stable/c/0f8d8f9c2173a541812dd750529f4a415117eb29
- https://git.kernel.org/stable/c/62d4e43a569b67929eb3319780be5359694c8086
- https://git.kernel.org/stable/c/675daf435e9f8e5a5eab140a9864dfad6668b375
- https://git.kernel.org/stable/c/7932db06c82c5b2f42a4d1a849d97dba9ce4a362
- https://git.kernel.org/stable/c/cc5838f19d39a5fef04c468199699d2a4578be3a
- https://git.kernel.org/stable/c/d6bedd6acc0bcb1e7e010bc046032e47f08d379f
- https://git.kernel.org/stable/c/07afdfd8a68f9eea8db0ddc4626c874f29d2ac5e
- https://git.kernel.org/stable/c/09452c8fcbd7817c06e8e3212d99b45917e603a5
- https://git.kernel.org/stable/c/0f8d8f9c2173a541812dd750529f4a415117eb29
- https://git.kernel.org/stable/c/62d4e43a569b67929eb3319780be5359694c8086
- https://git.kernel.org/stable/c/675daf435e9f8e5a5eab140a9864dfad6668b375
- https://git.kernel.org/stable/c/7932db06c82c5b2f42a4d1a849d97dba9ce4a362
- https://git.kernel.org/stable/c/cc5838f19d39a5fef04c468199699d2a4578be3a
- https://git.kernel.org/stable/c/d6bedd6acc0bcb1e7e010bc046032e47f08d379f
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html



