CVE-2023-54291
NULL Pointer Dereference in Linux Kernel vduse Causes Kernel Crash
Publication date: 2025-12-30
Last updated on: 2025-12-30
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | kernel | * |
| linux | linux_kernel | * |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is a NULL pointer dereference in the Linux kernel's vduse component. Specifically, the vduse_vdpa_set_vq_affinity callback can be called with a NULL cpu_mask value when deleting the vduse device. This causes the kernel to attempt to dereference a NULL pointer, leading to a crash or kernel panic. The patch fixes this by resetting the virtqueue's IRQ affinity mask to include all CPUs instead of dereferencing the NULL cpu_mask.
How can this vulnerability impact me? :
This vulnerability can cause the Linux kernel to crash or panic due to a NULL pointer dereference when deleting a vduse device. This can lead to system instability, denial of service, or unexpected reboots, impacting the availability of the system.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
You can detect this vulnerability by monitoring your system logs for kernel NULL pointer dereference errors related to vduse or vdpa devices. Look for kernel oops messages similar to: '[ 4760.952149] BUG: kernel NULL pointer dereference, address: 0000000000000000' and call traces involving 'vduse_vdpa_set_vq_affinity'. Using commands like 'dmesg | grep -i vduse' or 'journalctl -k | grep -i vdpa' can help identify such errors.
What immediate steps should I take to mitigate this vulnerability?
The immediate mitigation is to update your Linux kernel to a version that includes the patch fixing the NULL pointer dereference in vduse_vdpa_set_vq_affinity. This patch resets the virtqueue's IRQ affinity mask to all CPUs instead of dereferencing a NULL cpu_mask, preventing the crash. Until then, avoid deleting vduse devices that may trigger this callback.