CVE-2023-54048
Race Condition in Linux bnxt_re Driver Causes Kernel Panic
Publication date: 2025-12-24
Last updated on: 2025-12-24
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| 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 in the Linux kernel's bnxt_re RDMA driver involves a race condition where completion handlers are scheduled after a Queue Pair (QP) has been destroyed. Hardware may generate completions indicating the QP is destroyed, but the driver might still schedule completion handlers for that QP. Since Completion Queues (CQs) remain active during QP destruction, this can cause a race between destroy_cq and poll_cq operations, potentially leading to kernel panics or crashes.
How can this vulnerability impact me? :
This vulnerability can cause kernel panics or crashes when the bnxt_re driver handles completions after a QP is destroyed. This instability can lead to system downtime, data loss, or degraded performance in systems using the affected RDMA driver, impacting reliability and availability.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by monitoring kernel logs for panic messages related to the bnxt_re driver, specifically looking for call traces involving bnxt_re_poll_cq and related functions indicating a poll after the CQ is freed. You can check the kernel log using commands like 'dmesg | grep bnxt_re' or 'journalctl -k | grep bnxt_re' to identify such errors.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, ensure that all completion handlers are completed before returning from the destroy QP function. Additionally, if free_cq is called soon after destroy_qp, the IB stack will cancel the CQ work before invoking the destroy_cq verb, preventing the race condition. Applying the updated Linux kernel patch that resolves this issue is also recommended.