In the Linux kernel, the following vulnerability has been resolved:
RDMA/cma: Fix workqueue crash in cma_netevent_work_handler
struct rdma_cm_id has member "struct work_struct net_work" that is reused for enqueuing cma_netevent_work_handler()s onto cma_wq.
Below crash[1] can occur if more than one call to cma_netevent_callback() occurs in quick succession, which further enqueues cma_netevent_work_handler()s for the same rdma_cm_id, overwriting any previously queued work-item(s) that was just scheduled to run i.e. there is no guarantee the queued work item may run between two successive calls to cma_netevent_callback() and the 2nd INIT_WORK would overwrite the 1st work item (for the same rdma_cm_id), despite grabbing id_table_lock during enqueue.
Also drgn analysis [2] indicates the work item was likely overwritten.
Fix this by moving the INIT_WORK() to __rdma_create_id(), so that it doesn't race with any existing queue_work() or its worker thread.
[1] Trimmed crash stack: ============================================= BUG: kernel NULL pointer dereference, address: 0000000000000008 kworker/u256:6 ... 6.12.0-0... Workqueue: cma_netevent_work_handler [rdma_cm] (rdma_cm) RIP: 0010:process_one_work+0xba/0x31a Call Trace: worker_thread+0x266/0x3a0 kthread+0xcf/0x100 ret_from_fork+0x31/0x50 ret_from_fork_asm+0x1a/0x30 =============================================
[2] drgn crash analysis:
>>> trace = prog.crashed_thread().stack_trace() >>> trace (0) crash_setup_regs (./arch/x86/include/asm/kexec.h:111:15) (1) __crash_kexec (kernel/crash_core.c:122:4) (2) panic (kernel/panic.c:399:3) (3) oops_end (arch/x86/kernel/dumpstack.c:382:3) ... (8) process_one_work (kernel/workqueue.c:3168:2) (9) process_scheduled_works (kernel/workqueue.c:3310:3) (10) worker_thread (kernel/workqueue.c:3391:4) (11) kthread (kernel/kthread.c:389:9)
Line workqueue.c:3168 for this kernel version is in process_one_work(): 3168 strscpy(worker->desc, pwq->wq->name, WORKER_DESC_LEN);
>>> trace[8]["work"] *(struct work_struct *)0xffff92577d0a21d8 = { .data = (atomic_long_t){ .counter = (s64)536870912, <=== Note }, .entry = (struct list_head){ .next = (struct list_head *)0xffff924d075924c0, .prev = (struct list_head *)0xffff924d075924c0, }, .func = (work_func_t)cma_netevent_work_handler+0x0 = 0xffffffffc2cec280, }
Suspicion is that pwq is NULL: >>> trace[8]["pwq"] (struct pool_workqueue *)<absent>
In process_one_work(), pwq is assigned from: struct pool_workqueue *pwq = get_work_pwq(work);
and get_work_pwq() is: static struct pool_workqueue *get_work_pwq(struct work_struct *work) { unsigned long data = atomic_long_read(&work->data);
if (data & WORK_STRUCT_PWQ) return work_struct_pwq(data); else return NULL; }
WORK_STRUCT_PWQ is 0x4: >>> print(repr(prog['WORK_STRUCT_PWQ'])) Object(prog, 'enum work_flags', value=4)
But work->data is 536870912 which is 0x20000000. So, get_work_pwq() returns NULL and we crash in process_one_work(): 3168 strscpy(worker->desc, pwq->wq->name, WORKER_DESC_LEN); =============================================
CVSS Details
- CVSS 3.1 Base Score: 5.5
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Amazon_linux_2023 | — | Upgrade kernel-livepatch-6.1.140-154.222Upgrade perf6.12Upgrade python3-perf-debuginfoUpgrade kernel-libbpf-staticUpgrade kernel-tools-debuginfoUpgrade bpftool-debuginfoUpgrade kernel6.12Upgrade kernel-libbpf-debuginfoUpgrade bpftoolUpgrade kernel6.12-debuginfo-common-aarch64Upgrade kernel-debuginfo-common-x86_64Upgrade kernel-debuginfoUpgrade kernel-libbpfUpgrade kernel6.12-debuginfo-common-x86_64Upgrade python3-perf6.12Upgrade kernel6.12-modules-extraUpgrade kernel-develUpgrade kernel-modules-extraUpgrade python3-perfUpgrade perfUpgrade kernelUpgrade kernel-livepatch-6.12.25-32.101Upgrade python3-perf6.12-debuginfoUpgrade kernel-libbpf-develUpgrade perf6.12-debuginfoUpgrade kernel6.12-debuginfoUpgrade kernel-tools-develUpgrade kernel-debuginfo-common-aarch64Upgrade perf-debuginfoUpgrade kernel-modules-extra-commonUpgrade kernel-headersUpgrade kernel-tools | Jun 24, 2025 | May 1, 2025 |
| Debian | — | Upgrade linux-6.1Upgrade linux | May 5, 2025 | May 1, 2025 |
| Suse | — | Upgrade gfs2-kmp-rtUpgrade kernel-azure-develUpgrade kernel-default-base-rebuildUpgrade kernel-default-develUpgrade kernel-debug-vdsoUpgrade kernel-rtUpgrade kselftests-kmp-azureUpgrade ocfs2-kmp-64kbUpgrade dtb-marvellUpgrade kernel-source-rtUpgrade dtb-broadcomUpgrade kernel-rt-vdsoUpgrade cluster-md-kmp-defaultUpgrade dtb-rockchipUpgrade kernel-rt_debug-develUpgrade kselftests-kmp-defaultUpgrade dtb-amazonUpgrade dtb-qcomUpgrade dtb-socionextUpgrade reiserfs-kmp-rtUpgrade kernel-syms-rtUpgrade kernel-default-livepatchUpgrade kernel-devel-azureUpgrade kernel-macrosUpgrade kernel-obs-qaUpgrade reiserfs-kmp-64kbUpgrade dtb-appleUpgrade kernel-rt_debug-vdsoUpgrade dtb-freescaleUpgrade kernel-kvmsmall-develUpgrade kernel-rt-optionalUpgrade dtb-sprdUpgrade kernel-rt-livepatch-develUpgrade kernel-default-extraUpgrade kernel-rt_debugUpgrade dtb-amlogicUpgrade kernel-azure-vdsoUpgrade kernel-obs-buildUpgrade kernel-source-vanillaUpgrade dlm-kmp-azureUpgrade kernel-rt-extraUpgrade kernel-kvmsmallUpgrade kernel-azure-extraUpgrade kernel-docsUpgrade kernel-azureUpgrade kernel-docs-htmlUpgrade dtb-apmUpgrade dtb-nvidiaUpgrade dlm-kmp-defaultUpgrade kernel-kvmsmall-vdsoUpgrade kernel-syms-azureUpgrade kselftests-kmp-rtUpgrade kernel-debug-develUpgrade dtb-xilinxUpgrade dtb-caviumUpgrade ocfs2-kmp-azureUpgrade dtb-armUpgrade kernel-64kb-extraUpgrade kernel-defaultUpgrade dtb-renesasUpgrade dtb-lgUpgrade kernel-64kb-optionalUpgrade kernel-debugUpgrade dtb-exynosUpgrade reiserfs-kmp-defaultUpgrade kernel-64kbUpgrade kernel-sourceUpgrade kernel-default-baseUpgrade cluster-md-kmp-rtUpgrade dtb-amdUpgrade cluster-md-kmp-azureUpgrade reiserfs-kmp-azureUpgrade kernel-source-azureUpgrade kernel-default-livepatch-develUpgrade dtb-hisiliconUpgrade cluster-md-kmp-64kbUpgrade ocfs2-kmp-rtUpgrade kselftests-kmp-64kbUpgrade kernel-zfcpdumpUpgrade dlm-kmp-rtUpgrade kernel-develUpgrade dtb-mediatekUpgrade gfs2-kmp-defaultUpgrade gfs2-kmp-64kbUpgrade kernel-default-optionalUpgrade gfs2-kmp-azureUpgrade dtb-alteraUpgrade dlm-kmp-64kbUpgrade kernel-azure-optionalUpgrade kernel-default-vdsoUpgrade kernel-64kb-develUpgrade dtb-allwinnerUpgrade ocfs2-kmp-defaultUpgrade kernel-symsUpgrade kernel-rt-develUpgrade kernel-devel-rt | Dec 5, 2025 | Jun 16, 2025 |
| Ubuntu | — | Upgrade linux-image-oem-22.04bUpgrade linux-image-oracle-lts-24.04Upgrade linux-image-genericUpgrade linux-image-generic-6.8Upgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-gke-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-aws-64k-6.8Upgrade linux-image-azureUpgrade linux-image-oem-22.04aUpgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-6.8.0-100-genericUpgrade linux-image-azure-lts-24.04Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-gke-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-intel-iot-realtimeUpgrade linux-image-lowlatency-64kUpgrade linux-image-virtual-6.8Upgrade linux-image-gkeopUpgrade linux-image-raspiUpgrade linux-image-ibmUpgrade linux-image-generic-64k-6.8Upgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-ibm-classicUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-gkeop-6.8Upgrade linux-image-raspi-realtimeUpgrade linux-image-aws-6.8Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-intel-iotgUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-fipsUpgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-realtime-6.8.1Upgrade linux-image-generic-64kUpgrade linux-image-oem-22.04Upgrade linux-image-gcp-fipsUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-fips-6.8Upgrade linux-image-6.8.0-1046-azureUpgrade linux-image-xilinxUpgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-lowlatencyUpgrade linux-image-azure-fdeUpgrade linux-image-azure-fipsUpgrade linux-image-oem-22.04cUpgrade linux-image-azure-fips-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-nvidiaUpgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-kvmUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-gcp-64k-6.8Upgrade linux-image-awsUpgrade linux-image-aws-lts-24.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-virtualUpgrade linux-image-6.8.0-100-fipsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-6.14.0-1007-azureUpgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-oracleUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-6.8Upgrade linux-image-gcp-lts-24.04Upgrade linux-image-xilinx-6.8Upgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-raspi-6.8Upgrade linux-image-gkeUpgrade linux-image-6.14.0-1007-oracleUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-aws-fips-6.8Upgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-lowlatency-6.8Upgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-gke-64k-6.8Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-gcp-64kUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-oracle-6.8Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.14.0-22-genericUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-realtimeUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-aws-fipsUpgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-aws-64k | Jun 26, 2025 | May 1, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 13, 2025 | May 1, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub