CVE-2025-39945 json
cnic: Fix use-after-free bugs in cnic_delete_task
published 2025-10-04 13 mo ago modified 2026-10-19 20 d ago also EUVD-2025-32391
- cvss
- 7.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.2%
- EPSS 0.2% chance of exploitation in 30 days, percentile 5%
- public exploits
- 0
- none known
Summary
In the Linux kernel, the following vulnerability has been resolved:
cnic: Fix use-after-free bugs in cnic_delete_task
The original code uses cancel_delayed_work() in cnic_cm_stop_bnx2x_hw(), which does not guarantee that the delayed work item 'delete_task' has fully completed if it was already running. Additionally, the delayed work item is cyclic, the flush_workqueue() in cnic_cm_stop_bnx2x_hw() only blocks and waits for work items that were already queued to the workqueue prior to its invocation. Any work items submitted after flush_workqueue() is called are not included in the set of tasks that the flush operation awaits. This means that after the cyclic work items have finished executing, a delayed work item may still exist in the workqueue. This leads to use-after-free scenarios where the cnic_dev is deallocated by cnic_free_dev(), while delete_task remains active and attempt to dereference cnic_dev in cnic_delete_task().
A typical race condition is illustrated below:
CPU 0 (cleanup) | CPU 1 (delayed work callback) cnic_netdev_event() | cnic_stop_hw() | cnic_delete_task() cnic_cm_stop_bnx2x_hw() | ... cancel_delayed_work() | /* the queue_delayed_work() flush_workqueue() | executes after flush_workqueue()*/ | queue_delayed_work() cnic_free_dev(dev)//free | cnic_delete_task() //new instance | dev = cp->dev; //use
Replace cancel_delayed_work() with cancel_delayed_work_sync() to ensure that the cyclic delayed work item is properly canceled and that any ongoing execution of the work item completes before the cnic_dev is deallocated. Furthermore, since cancel_delayed_work_sync() uses __flush_work(work, true) to synchronously wait for any currently executing instance of the work item to finish, the flush_workqueue() becomes redundant and should be removed.
This bug was identified through static analysis. To reproduce the issue and validate the fix, I simulated the cnic PCI device in QEMU and introduced intentional delays — such as inserting calls to ssleep() within the cnic_delete_task() function — to increase the likelihood of triggering the bug.
Patch / fix
- Linux Linux 5.4.300, 5.10.245, 5.15.194, 6.1.154, 6.6.108, 6.12.49, 6.16.9, 6.17
- linux Debian 12 6.1.158-1
- linux Debian 13 6.12.57-1
- linux Debian 14 6.16.9-1
debian advisories DEBIAN-CVE-2025-39945
- linux Ubuntu 22.04 LTS 5.15.0-170.180
- linux Ubuntu 24.04 LTS 6.8.0-106.106
- linux-aws Ubuntu 22.04 LTS 5.15.0-1100.107
- linux-aws Ubuntu 24.04 LTS 6.8.0-1050.53
- linux-gcp Ubuntu 22.04 LTS 5.15.0-1100.109
- linux-gcp Ubuntu 24.04 LTS 6.8.0-1052.55
- linux-gke Ubuntu 22.04 LTS 5.15.0-1096.102
- linux-gke Ubuntu 24.04 LTS 6.8.0-1048.53
ubuntu advisories UBUNTU-CVE-2025-39945
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- kernel-64kb SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS, SLE High Performance Computing 15 SP5-ESPOS 5.14.21-150500.55.127.1
- kernel-syms SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.127.1
- kernel-source SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.127.1
- kernel-default SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +3 more 5.14.21-150500.55.127.1
- kernel-obs-build SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE High Performance Computing 15 SP5-LTSS +1 more 5.14.21-150500.55.127.1
- kernel-default-base SLES for SAP 15 SP5, SLES 15 SP5-LTSS, SLE Micro 5.5 +2 more 5.14.21-150500.55.127.1.150500.6.61.1
- kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.58.1
- kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.58.1
suse advisories SUSE-SU-2025:4320-1SUSE-SU-2025:4301-1SUSE-SU-2025:21052-1SUSE-SU-2025:21064-1SUSE-SU-2025:21074-1SUSE-SU-2025:21139-1
- kernel-rt openSUSE Leap 16.0 6.12.0-160000.6.1
- dtb-aarch64 openSUSE Leap 16.0 6.12.0-160000.6.1
- kernel-64kb openSUSE Leap 16.0 6.12.0-160000.6.1
- kernel-syms openSUSE Leap 16.0 6.12.0-160000.6.1
- kernel-obs-qa openSUSE Leap 16.0 6.12.0-160000.6.1
- kernel-source openSUSE Leap 16.0 6.12.0-160000.6.1
- kernel-default openSUSE Leap 16.0 6.12.0-160000.6.1
- kernel-kvmsmall openSUSE Leap 16.0 6.12.0-160000.6.1
opensuse advisories openSUSE-SU-2025:20081-1
- kernel Azure Linux 3.0 6.6.112.1-1
- kernel CBL-Mariner 2.0 5.15.200.1-1
azure linux advisories AZL-68163AZL-75170
Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT
- git.kernel.org/stable/c/fde6e73189f40ebcf0633aed2b68e731c25f3aa3 commit
- git.kernel.org/stable/c/7b6a5b0a6b392263c3767fc945b311ea04b34bbd commit
- git.kernel.org/stable/c/0405055930264ea8fd26f4131466fa7652e5e47d commit
- git.kernel.org/stable/c/e1fcd4a9c09feac0902a65615e866dbf22616125 commit
- git.kernel.org/stable/c/8eeb2091e72d75df8ceaa2172638d61b4cf8929a commit
- git.kernel.org/stable/c/6e33a7eed587062ca8161ad1f4584882a860d697 commit
- git.kernel.org/stable/c/0627e1481676669cae2df0d85b5ff13e7d24c390 commit
- git.kernel.org/stable/c/cfa7d9b1e3a8604afc84e9e51d789c29574fb216 commit
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2025-39945 updated cvss 5.8
kernel: cnic: Fix use-after-free bugs in cnic_delete_task
-
Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more Red Hat Enterprise Linux 9 rv, perf, rtla, kernel, bpftool, libperf, +83 more Red Hat Enterprise Linux 10 kernelaffected: no fix available “Fix deferred”
-
Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 4 mo ago
Exploit prediction
0.16% chance of exploitation in the next 30 days, higher than 5% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 7.8 | CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
Affected products
- Linux Linux
Classification
- Weakness
-
- CWE-416 Use After Free
- Technology feeds
References
-
git.kernel.org
/stable/c/fde6e73189f40ebcf0633aed2b68e731c25f3aa3
patch
-
git.kernel.org
/stable/c/7b6a5b0a6b392263c3767fc945b311ea04b34bbd
patch
-
git.kernel.org
/stable/c/0405055930264ea8fd26f4131466fa7652e5e47d
patch
-
git.kernel.org
/stable/c/e1fcd4a9c09feac0902a65615e866dbf22616125
patch
-
git.kernel.org
/stable/c/8eeb2091e72d75df8ceaa2172638d61b4cf8929a
patch
-
git.kernel.org
/stable/c/6e33a7eed587062ca8161ad1f4584882a860d697
patch
-
git.kernel.org
/stable/c/0627e1481676669cae2df0d85b5ff13e7d24c390
patch
-
git.kernel.org
/stable/c/cfa7d9b1e3a8604afc84e9e51d789c29574fb216
patch
Sources
- CVE List CVE-2025-39945
- NVD CVE-2025-39945
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.