CVE-2025-39945
BaseFortify
Publication date: 2025-10-04
Last updated on: 2025-10-06
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | From 5.15.160 (inc) to 5.16 (inc) |
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 use-after-free bug in the Linux kernel's cnic driver. It occurs because the code uses cancel_delayed_work() which does not guarantee that a delayed work item called 'delete_task' has fully completed if it was already running. Since the delayed work item is cyclic and flush_workqueue() only waits for previously queued work, new work items can still be active after the device is freed. This leads to a scenario where the cnic_dev structure is deallocated while 'delete_task' still tries to access it, causing use-after-free errors. The fix replaces cancel_delayed_work() with cancel_delayed_work_sync() to ensure the work item is fully canceled and completed before freeing the device.
How can this vulnerability impact me? :
This vulnerability can lead to use-after-free conditions in the Linux kernel, which may cause system instability, crashes, or potential kernel memory corruption. Such issues can be exploited to cause denial of service or potentially escalate privileges if an attacker can trigger the race condition.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, update the Linux kernel to a version where the cnic driver uses cancel_delayed_work_sync() instead of cancel_delayed_work() in the cnic_cm_stop_bnx2x_hw() function. This ensures that the cyclic delayed work item is properly canceled and any ongoing execution completes before the cnic_dev is deallocated, preventing use-after-free bugs. Additionally, remove the flush_workqueue() call in that function as it becomes redundant.