MEDIUM 5.5

CVE-2026-52939: Linux Kernel RDS/IB NULL Pointer Crash – Denial of Service

A flaw in the Linux kernel's RDS (Reliable Datagram Sockets) over InfiniBand implementation causes a null pointer crash when handling masked atomic operations. When an unprivileged user sends certain atomic messages over an active RDS/IB connection, the kernel fails to properly track the request state, leading to a NULL dereference in interrupt context. This can crash the system or trigger a kernel panic. The issue only manifests on InfiniBand hardware that natively supports masked atomic operations, such as Mellanox MLX4 and MLX5 adapters.

Source data · NVD / CISA · public domain

CVSS
3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weaknesses (CWE)
CWE-476
Affected products
8 configuration(s)
Published / Modified
2026-06-24 / 2026-07-08

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: net/rds: fix NULL deref in rds_ib_send_cqe_handler() on masked atomic completion rds_ib_xmit_atomic() always programs a masked atomic opcode (IB_WR_MASKED_ATOMIC_CMP_AND_SWP or IB_WR_MASKED_ATOMIC_FETCH_AND_ADD) for every RDS atomic cmsg. But the completion-side switch in rds_ib_send_unmap_op() only handles the non-masked opcodes, so a masked atomic completion falls through to default and returns rm == NULL while send->s_op is left set. rds_ib_send_cqe_handler() then dereferences the NULL rm via rm->m_final_op, oopsing in softirq context. An unprivileged AF_RDS sendmsg() of an atomic cmsg over an active RDS/IB connection triggers it; on hardware that natively accepts masked atomics (mlx4, mlx5) no extra setup is needed. RDS/IB: rds_ib_send_unmap_op: unexpected opcode 0xd in WR! Oops: general protection fault [#1] SMP KASAN KASAN: null-ptr-deref in range [0x0000000000000190-0x0000000000000197] RIP: rds_ib_send_cqe_handler+0x25c/0xb10 (net/rds/ib_send.c:282) Call Trace: <IRQ> rds_ib_send_cqe_handler (net/rds/ib_send.c:282) poll_scq (net/rds/ib_cm.c:274) rds_ib_tasklet_fn_send (net/rds/ib_cm.c:294) tasklet_action_common (kernel/softirq.c:943) handle_softirqs (kernel/softirq.c:573) run_ksoftirqd (kernel/softirq.c:479) </IRQ> Kernel panic - not syncing: Fatal exception in interrupt Handle the masked atomic opcodes in the same case as the non-masked ones: they map to the same struct rds_message.atomic union member, so the existing container_of()/rds_ib_send_unmap_atomic() body is correct for them.

8 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

The vulnerability exists in a code path mismatch within the RDS/IB layer. The transmit function rds_ib_xmit_atomic() unconditionally programs masked atomic opcodes (IB_WR_MASKED_ATOMIC_CMP_AND_SWP or IB_WR_MASKED_ATOMIC_FETCH_AND_ADD) for RDS atomic control messages. However, the completion handler rds_ib_send_unmap_op() only contains case statements for non-masked atomic opcodes. When a masked atomic completion arrives, the opcode check falls through to default, returning NULL for the rds_message (rm) pointer while leaving send->s_op set. The subsequent call to rds_ib_send_cqe_handler() then dereferences the NULL rm pointer at offset 0x190 (rm->m_final_op), triggering a general protection fault in softirq context. The fix involves adding case statements for the masked opcodes alongside the existing non-masked ones, as both types map to the same rds_message.atomic union member.

Business impact

An unprivileged local user can remotely crash a Linux system running RDS/IB by sending a crafted atomic message over an existing RDS connection. This represents a local denial-of-service vector with no authentication required beyond socket-level access to RDS. For environments using Mellanox InfiniBand adapters with RDS enabled, kernel panic recovery time may be significant, and repeated exploitation could disrupt service availability. Workloads relying on RDS for cluster communication, HPC, or storage protocols are most at risk.

Affected systems

The vulnerability affects all versions of the Linux kernel with RDS/IB support. Exploitation requires an active RDS/IB connection and hardware that natively supports masked atomic operations—primarily Mellanox MLX4 and MLX5 adapters. Systems using other InfiniBand vendors or non-RDS networking stacks are not affected. The vulnerability is in the mainline kernel and backported stable branches that include the vulnerable RDS/IB code.

Exploitability

Exploitability is straightforward and requires no privileged access or complex setup. Any unprivileged user with local socket access and an active RDS/IB connection can trigger the crash by sending a single atomic control message via AF_RDS sendmsg(). The CVSS score of 5.5 reflects the local attack vector and high availability impact; the low complexity and lack of user interaction mean exploitation is trivial once conditions are met. No CISA KEV listing is present, suggesting limited evidence of active exploitation in the wild, though the trivial trigger makes it a practical DoS vector.

Remediation

Apply a kernel update that includes the fix for rds_ib_send_unmap_op(). The remediation adds case statements to handle IB_WR_MASKED_ATOMIC_CMP_AND_SWP and IB_WR_MASKED_ATOMIC_FETCH_AND_ADD opcodes in the completion handler. Verify the patch is present in your kernel version by checking the net/rds/ib_send.c file around the send-unmap function. If RDS is not required on affected systems, disabling RDS modules via modprobe blacklist or kernel configuration is an immediate mitigation.

Patch guidance

Identify your Linux kernel version and check your vendor's security advisory or kernel.org for the patched version. Patch releases should be available for currently supported stable branches (LTS and regular releases). If you maintain custom kernels, backport the fix from the upstream commit that resolves the masked atomic opcode handling. Test the patched kernel in a non-production environment first, particularly if you use RDS/IB for cluster communication, to verify compatibility with your InfiniBand drivers and userspace RDS libraries.

Detection guidance

Monitor kernel logs for the error message 'rds_ib_send_unmap_op: unexpected opcode 0xd in WR!' or general protection faults with a stack trace mentioning rds_ib_send_cqe_handler(). Kernel panic dumps and kdump logs should show the crash at net/rds/ib_send.c:282. Network detection is difficult without RDS protocol awareness, but correlation of RDS/IB connection establishment with subsequent kernel crashes on systems with MLX4/MLX5 adapters is a strong indicator. Enable kernel KASAN (Kernel Address Sanitizer) in development/test environments to catch null-ptr-deref conditions early.

Why prioritize this

Although CVSS 5.5 is moderate, this vulnerability should be treated as HIGH priority for systems with active RDS/IB deployments. The trivial exploit trigger (single unprivileged sendmsg call), kernel panic impact, and potential service disruption warrant rapid patching. Organizations using HPC clusters, storage appliances, or distributed databases over InfiniBand should prioritize immediately. For systems without RDS/IB enabled or usage, risk is low, but kernel security updates should still be applied systematically.

Risk score, explained

The CVSS 3.1 score of 5.5 (MEDIUM) reflects a local attack vector (AV:L), low complexity (AC:L), low privilege requirement (PR:L), no user interaction (UI:N), and high availability impact (A:H). The score appropriately captures the availability risk but may underweight the operational impact of kernel panics in production environments. For mission-critical RDS/IB infrastructure, consider this vulnerability more severely in your risk framework.

Frequently asked questions

What is RDS and why would we have it enabled?

RDS (Reliable Datagram Sockets) is a low-latency messaging protocol optimized for cluster and high-performance computing environments. It is commonly used in HPC, financial trading systems, and distributed databases that require fast inter-node communication over InfiniBand. Check your kernel config for CONFIG_RDS and CONFIG_RDS_RDMA to determine if RDS is compiled into your kernels.

Can this be exploited remotely over the network?

No. The vulnerability requires local socket access and an already-active RDS/IB connection. It cannot be triggered from a remote system without first establishing an RDS connection from the target node. This limits the attack to local users or processes with legitimate RDS access.

Do all InfiniBand adapters trigger this vulnerability?

No. The vulnerability only manifests on hardware that natively supports masked atomic operations. Mellanox MLX4 and MLX5 adapters are known to be vulnerable. Other InfiniBand vendors or adapters that fall back to software emulation of masked atomics may not trigger the null dereference, though they are still running vulnerable code.

Is there a workaround if we cannot patch immediately?

Yes. Disabling RDS at the kernel module level (echo 'blacklist rds' >> /etc/modprobe.d/blacklist.conf) or via kernel configuration if you can rebuild will prevent exploitation. If RDS is essential, isolate RDS-using nodes and restrict local user access until patches are available.

This analysis is based on the published CVE description and CVSS vector as of the source data timestamp. Actual vulnerability impact and patch availability may vary by Linux distribution and vendor backport schedules. Organizations should verify patch applicability against their specific kernel versions and InfiniBand driver stack. SEC.co does not provide exploit code or detailed weaponization guidance. Test all kernel updates in non-production environments before deployment. This vulnerability is not currently listed on CISA's KEV catalog, but rapid patching is still recommended for affected production environments. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).