Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-45898

CVE-2026-45898: Linux Kernel Race Condition Vulnerability

CVE-2026-45898 is a race condition flaw in the Linux kernel RDMA/iwcm component that causes workqueue list corruption. This article covers the technical details, affected versions, impact, and mitigation strategies.

Published:

CVE-2026-45898 Overview

CVE-2026-45898 is a Linux kernel vulnerability in the RDMA/iwcm (iWARP Connection Manager) subsystem. The flaw causes workqueue list corruption due to incorrect work submission logic introduced by commit e1168f0 ("RDMA/iwcm: Simplify cm_event_handler()"). The handler walks a work_list until empty, which can release work items back to the free list while the underlying workqueue entry is still queued. Reuse of the freed entry through INIT_WORK then corrupts the kernel workqueue's linked list. The condition was reproduced through stress testing with ucmatose on Intel E830 hardware in iWARP mode, triggering a kernel BUG at lib/list_debug.c:67.

Critical Impact

Triggering the bug results in a kernel BUG() and system instability on hosts using iWARP RDMA connections.

Affected Products

  • Linux kernel branches containing commit e1168f0 ("RDMA/iwcm: Simplify cm_event_handler()")
  • Systems using RDMA/iwcm with iWARP-capable hardware such as the Intel E830
  • Stable kernel trees prior to fixes 38c5b49, 7874eea, a6b9e79, and eb71513

Discovery Timeline

  • 2026-05-27 - CVE-2026-45898 published to NVD
  • 2026-05-27 - Last updated in NVD database

Technical Details for CVE-2026-45898

Vulnerability Analysis

The iWARP Connection Manager (iwcm) maintains a free list of struct iwcm_work objects, each embedding a struct work_struct. The commit e1168f0 modified cm_event_handler() to unconditionally call queue_work(), assuming the kernel would deduplicate already-pending work. That assumption is invalid here because every event acquires a distinct iwcm_work instance from the free list, so each queue_work() call enqueues a unique work_struct.

The work handler walks the iwcm-internal work_list and processes all queued items in a single invocation. When the handler processes entry N+1 inline and releases its memory back to the free list, the corresponding workqueue entry is still scheduled. A subsequent allocation reinitializes that memory via INIT_WORK(), leaving the kernel workqueue's internal linked list pointing at a reinitialized node. The next list operation hits __list_del_entry_valid_or_report and panics with list_del corruption. next->prev should be ....

Root Cause

The root cause is duplicated queueing state between the iwcm-owned work_list and the kernel workqueue's internal list, combined with premature recycling of iwcm_work objects [Kernel Workqueue Race]. The kernel workqueue already tracks pending work, so the auxiliary work_list is redundant and unsafe.

Attack Vector

The condition is reachable through high-rate iWARP connection management events. A local workload that drives many RDMA CM events, such as ucmatose stress testing, can trigger the corruption on systems exposing iWARP hardware. The fix removes the iwcm work_list entirely and relies on the kernel workqueue to track pending work, eliminating the double-tracking race.

No public exploit code is available. See the Kernel Git Commit 38c5b49 and Kernel Git Commit eb71513 for the upstream fixes.

Detection Methods for CVE-2026-45898

Indicators of Compromise

  • Kernel log entries containing list_del corruption. next->prev should be originating from the iw_cm_wq workqueue
  • Kernel BUG at lib/list_debug.c:67 with __list_del_entry_valid_or_report in the call trace
  • Call traces including move_linked_works, __pwq_activate_work, pwq_dec_nr_in_flight, and process_scheduled_works

Detection Strategies

  • Monitor dmesg and /var/log/kern.log for the workqueue list corruption signature shown above
  • Inventory kernel versions on RDMA-enabled hosts and flag those containing commit e1168f0 without the listed fix commits
  • Correlate unexpected kernel panics on hosts running iWARP workloads with RDMA CM event volume

Monitoring Recommendations

  • Forward kernel logs from RDMA hosts to a centralized log store and alert on list_del corruption and kernel BUG strings
  • Track crash dumps from systems using Intel iWARP NICs and compare against the call trace pattern above
  • Audit workloads that exercise RDMA connection establishment at high rates for unexplained terminations

How to Mitigate CVE-2026-45898

Immediate Actions Required

  • Apply the upstream kernel fixes referenced as 38c5b49, 7874eea, a6b9e79, and eb71513 once available in your distribution
  • Identify hosts running iWARP-capable RDMA hardware and prioritize them for patching
  • Restrict or throttle workloads that perform high-rate RDMA connection management on unpatched kernels

Patch Information

The fix removes the iwcm work_list and relies solely on the kernel workqueue to track pending work. Patch commits are available at Kernel Git Commit 38c5b49, Kernel Git Commit 7874eea, Kernel Git Commit a6b9e79, and Kernel Git Commit eb71513. Rebuild kernels from a stable tree containing these commits or install vendor packages incorporating them.

Workarounds

  • Unload the iw_cm module on systems that do not require iWARP connectivity
  • Disable iWARP on RDMA NICs where only RoCE or InfiniBand transports are needed
  • Avoid running stress tools such as ucmatose against production iWARP endpoints until patches are deployed

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.