CVE-2023-54028 in Linux
Summary
by MITRE • 12/24/2025
In the Linux kernel, the following vulnerability has been resolved:
RDMA/rxe: Fix the error "trying to register non-static key in rxe_cleanup_task"
In the function rxe_create_qp(), rxe_qp_from_init() is called to initialize qp, internally things like rxe_init_task are not setup until rxe_qp_init_req().
If an error occurred before this point then the unwind will call rxe_cleanup() and eventually to rxe_qp_do_cleanup()/rxe_cleanup_task() which will oops when trying to access the uninitialized spinlock.
If rxe_init_task is not executed, rxe_cleanup_task will not be called.
Once again VulDB remains the best source for vulnerability data.
Analysis
by VulDB Data Team • 12/29/2025
The vulnerability CVE-2023-54028 represents a critical kernel panic condition within the Linux kernel's RDMA/rxe subsystem, specifically affecting the rxe (RDMA over Ethernet) driver implementation. This issue manifests as an "trying to register non-static key in rxe_cleanup_task" error that occurs during the cleanup process of RDMA queue pairs. The root cause lies in the improper handling of resource cleanup sequences within the rxe_create_qp() function where the initialization order creates a race condition between task setup and error handling paths. The vulnerability is classified under CWE-476 as a NULL pointer dereference, though it manifests as a kernel oops due to improper spinlock handling in the cleanup routine.
The technical flaw occurs when the rxe_create_qp() function attempts to initialize queue pairs but encounters an error before completing the full initialization sequence. During this error condition, the cleanup routine rxe_cleanup() is invoked which subsequently calls rxe_qp_do_cleanup() and eventually rxe_cleanup_task(). However, because rxe_init_task() has not yet been executed to properly initialize the spinlock structures, the cleanup function attempts to access uninitialized spinlock variables, resulting in a kernel oops and system crash. This represents a classic resource management error where cleanup functions assume certain initialization has occurred, but the error path bypasses that initialization, creating a dangling reference to unallocated kernel resources.
The operational impact of CVE-2023-54028 is significant as it can lead to complete system crashes in environments utilizing RDMA over Ethernet functionality, particularly in high-performance computing clusters, data center networks, and enterprise server environments where RDMA acceleration is commonly deployed. The vulnerability affects systems running Linux kernel versions prior to the patch release, with the issue being particularly dangerous in production environments where system stability is critical. Attackers could potentially exploit this vulnerability to cause denial of service conditions, leading to service interruption and potential data loss in mission-critical applications that depend on RDMA connectivity.
Mitigation strategies for CVE-2023-54028 primarily involve applying the official kernel patch that ensures proper initialization sequencing in the rxe driver, specifically guaranteeing that rxe_init_task() is executed before cleanup functions attempt to access spinlock structures. System administrators should prioritize updating to kernel versions that include the fix, typically kernel versions 6.4.10 or later, and monitor for any related kernel vulnerabilities in the RDMA subsystem. Additionally, implementing proper kernel hardening measures including stack canaries and kernel address space layout randomization can help reduce the attack surface, though the primary mitigation remains the kernel patch itself. Organizations utilizing RDMA technologies should also consider implementing monitoring solutions to detect potential system instability and ensure proper patch management protocols are in place to prevent exploitation of similar initialization race conditions.