MEDIUM 5.5

CVE-2026-52941: Linux Kernel SMC Null Pointer Dereference DoS Vulnerability

A vulnerability exists in the Linux kernel's SMC (Shared Memory Communications) networking implementation that can crash a system when tracing is enabled. Specifically, when a tracepoint used to monitor socket messaging is turned on, sending or receiving data over an SMC-D (Shared Memory Communications over DAPL) connection triggers a null pointer dereference. The kernel tries to access link information that doesn't exist for SMC-D sockets, causing a kernel panic. While enabling the tracepoint requires root access, unprivileged users can create SMC-D sockets and trigger the crash.

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
4 configuration(s)
Published / Modified
2026-06-24 / 2026-07-08

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: net/smc: avoid NULL deref of conn->lnk in smc_msg_event tracepoint The smc_msg_event tracepoint class, shared by smc_tx_sendmsg and smc_rx_recvmsg, unconditionally dereferences smc->conn.lnk: __string(name, smc->conn.lnk->ibname) conn->lnk is only set for SMC-R; for SMC-D it is NULL. Other code on these paths already handles this (e.g. !conn->lnk in SMC_STAT_RMB_TX_SIZE_SMALL()). With the tracepoint enabled, the first sendmsg()/recvmsg() on an SMC-D socket crashes: Oops: general protection fault, probably for non-canonical address KASAN: null-ptr-deref in range [...] RIP: 0010:strlen+0x1e/0xa0 Call Trace: trace_event_raw_event_smc_msg_event (net/smc/smc_tracepoint.h:44) smc_rx_recvmsg (net/smc/smc_rx.c:515) smc_recvmsg (net/smc/af_smc.c:2859) __sys_recvfrom (net/socket.c:2315) __x64_sys_recvfrom (net/socket.c:2326) do_syscall_64 The faulting address 0x3e0 is offsetof(struct smc_link, ibname), confirming the NULL ->lnk deref. Enabling the tracepoint requires root, but the trigger itself is unprivileged: socket(AF_SMC, ...) has no capability check, and SMC-D negotiation needs no admin step on s390 or on x86 with the loopback ISM device loaded. Log an empty device name for SMC-D instead of dereferencing NULL.

6 reference(s) · View on NVD →

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

Technical summary

The smc_msg_event tracepoint in net/smc unconditionally dereferences conn->lnk to read the ibname field without checking whether the link structure is allocated. SMC-R (RDMA) connections initialize conn->lnk during setup; SMC-D (DAPL) connections leave it NULL. When the tracepoint is active and an SMC-D socket calls sendmsg() or recvmsg(), the trace handler attempts to read strlen() on an invalid memory address corresponding to the uninitialized ibname pointer within a null smc_link structure. The crash occurs in trace_event_raw_event_smc_msg_event as it processes the __string() macro. The CWE-476 classification (Null Pointer Dereference) accurately describes the root cause.

Business impact

Kernel panics triggered by unprivileged users create a denial-of-service vector. Although an administrator must first enable tracing (a root-level operation), the actual crash trigger requires no privileges—any user can create an SMC-D socket and perform basic send/receive operations. On systems where SMC-D is available (native s390, or x86 with loopback ISM device), availability can be degraded. For kernel debugging and observability workflows that keep tracepoints enabled in production, this becomes a practical risk.

Affected systems

All Linux kernel versions with the SMC networking subsystem and the smc_msg_event tracepoint are affected. The vulnerability applies across architectures where SMC-D is available: s390, and x86 systems with ISM device support (particularly loopback ISM). Kernel versions prior to the fix commit are vulnerable; verify the exact affected range against the upstream Linux kernel security advisory.

Exploitability

Exploitability is straightforward: no special capabilities are required to open an SMC socket, negotiate an SMC-D connection, and call sendmsg() or recvmsg(). The barrier to exploitation is the prerequisite that tracing must already be enabled by a root user. On systems actively using dynamic tracing for performance monitoring or debugging, an unprivileged local user can trivially cause a kernel panic. The crash is deterministic and occurs on the first message operation after tracepoint activation.

Remediation

The fix modifies the tracepoint handler to log an empty string for the device name when conn->lnk is NULL (SMC-D case), rather than dereferencing a null pointer. This preserves tracing functionality for both SMC-R and SMC-D while preventing the crash. Apply the upstream kernel patch that resolves the null dereference in net/smc/smc_tracepoint.h.

Patch guidance

Upgrade to a patched Linux kernel version that includes the fix for CVE-2026-52941. Verify against the upstream Linux kernel advisory or your distribution's security updates for the exact version numbers. If you maintain custom kernel builds or use a specific distribution (RHEL, Ubuntu, Debian, SUSE, etc.), check with your vendor's advisory for the patched kernel release. For interim mitigation, disable the smc_msg_event tracepoint in production environments unless actively debugging SMC issues.

Detection guidance

Monitor kernel logs and crash dumps for null pointer dereferences in trace_event_raw_event_smc_msg_event or smc_msg_event tracepoint code. A system with active SMC-D traffic and enabled tracing that suddenly produces a 'general protection fault' with RIP in strlen() or the smc_tracepoint.h region indicates exploitation or triggering of this defect. Check /proc/sys/kernel/ftrace_enabled and examine which tracepoints are active using 'cat /sys/kernel/debug/tracing/enabled_events' to confirm the smc_msg_event tracepoint state.

Why prioritize this

Although the CVSS 3.1 score of 5.5 (Medium) reflects limited scope—local access only, no credential escalation—the practical impact is significant for kernel availability. Systems with active tracing (development, staging, or observability-focused production environments) face a reliable denial-of-service trigger. Organizations deploying SMC-D networking on s390 or x86 ISM systems should prioritize patching to maintain stability, especially if dynamic tracing is part of their monitoring strategy.

Risk score, explained

The CVSS 3.1 vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H reflects: Attack Vector Local (requires user shell access), Access Complexity Low (no special conditions), Privilege Level Low (unprivileged user sufficient, though tracepoint must be pre-enabled by root), User Interaction None, Scope Unchanged, Confidentiality None (no data leak), Integrity None (no data corruption), Availability High (kernel crash). The score of 5.5 appropriately captures a local DoS without data compromise, though the ease of triggering and the typical defense-in-depth reliance on kernel stability argue for prompt remediation.

Frequently asked questions

Can this be exploited remotely?

No. The vulnerability requires local access to create a socket and send/receive data. Exploitation is confined to unprivileged local users on systems where SMC-D is configured and the smc_msg_event tracepoint is enabled.

What is the difference between SMC-R and SMC-D, and why does only SMC-D crash?

SMC-R uses RDMA devices and allocates a link structure (conn->lnk) during connection setup. SMC-D uses shared memory and does not allocate a link structure; conn->lnk remains NULL. The tracepoint blindly dereferences this pointer, causing a crash on SMC-D. Existing SMC-R connections function normally because their link structure is present.

Do I need to disable tracing entirely to be safe?

Disabling the smc_msg_event tracepoint is sufficient; you do not need to disable all kernel tracing. Administrators can selectively enable only non-vulnerable tracepoints. However, upgrading to the patched kernel is the definitive solution.

Is this present in all Linux distributions?

Any distribution shipping an unpatched Linux kernel with the SMC subsystem enabled is affected. Check your distribution's security advisory for the patched kernel version. Distributions such as Red Hat, Canonical, and SUSE have published updates; verify the specific version for your platform.

This analysis is provided for informational purposes and reflects publicly available information as of the publication date. Security details, patch availability, and vendor-specific guidance are subject to change. Always verify against official vendor advisories and security bulletins before making remediation decisions. The vulnerability classification, CVSS scoring, and affected software scope are based on CVE-2026-52941 upstream documentation; confirm compatibility and patch versions with your specific Linux distribution and kernel build. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).