CVE-2026-52938
Medium · 5.5CVSS
5.5
EPSS
0.1%
Published
Jun 24, 2026
CISA due date
—
Cloudanix analysis
Some Linux systems can crash under specific network and BPF activity, causing outages until the kernel is updated.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This vulnerability is a race-condition NULL pointer dereference in the Linux kernel BPF socket storage code. During concurrent socket storage unlinking and RCU-protected reads, bpf_selem_unlink_nofail() can clear the storage map pointer before the element is removed from the list. A concurrent reader in bpf_sk_storage_clone() or related diagnostic paths can then dereference a NULL smap pointer, triggering a kernel general protection fault or panic depending on kernel configuration. The practical technical impact is local or network-adjacent denial of service through kernel crash conditions; the available description does not indicate privilege escalation, data disclosure, or code execution.
Why it matters to the business
Systems running affected Linux kernel versions may become unstable or crash if the vulnerable BPF socket storage path is triggered, causing service interruption, failed connections, workload restarts, or host reboots. The current EPSS score is very low, it is not listed in CISA KEV, and no public exploit maturity is reported, so broad active exploitation is not currently indicated; however, kernel-level denial-of-service bugs should still be prioritized for internet-facing, high-availability, container-hosting, and multi-tenant Linux systems where outages have direct operational impact.
How an attack unfolds
An attacker would need to trigger the vulnerable kernel execution path involving BPF socket storage while socket cloning or diagnostic processing occurs concurrently with storage element removal. In a plausible scenario, the attacker first obtains the ability to run code or otherwise influence BPF/socket behavior on a vulnerable Linux host, then creates conditions that exercise BPF socket local storage, connection cloning, and teardown at high concurrency. If the timing race is won, the kernel observes a storage element that remains linked while its map pointer has already been cleared, causing a NULL pointer dereference in bpf_sk_storage_clone() or bpf_sk_storage_diag_put_all(). The result is a kernel fault that may panic the host or disrupt affected networking services. The vulnerability is primarily a stability and availability issue rather than a direct remote compromise based on the provided information.
How to fix it
Apply a Linux kernel update that includes the fix adding validated NULL checks for smap in bpf_sk_storage_clone() and bpf_sk_storage_diag_put_all(), and the related diagnostic path refactoring. Because exact affected package names and fixed versions were not provided, use the fixed kernel packages from the operating system or distribution vendor advisory for this CVE. Where immediate patching is not possible, reduce exposure by restricting untrusted local shell access, limiting who can load or use BPF programs, disabling unprivileged BPF where operationally feasible, and applying standard kernel hardening controls. On many Linux distributions, unprivileged BPF can be restricted with kernel.unprivileged_bpf_disabled=1, subject to compatibility testing. Plan for reboot or live-patching validation as required by the platform, because kernel fixes generally are not fully effective until the running kernel is updated.
How to confirm the fix worked
Confirm the running kernel version is at or above the vendor-fixed version for the deployed distribution, not only that the package is installed. Validate with uname -r, package manager metadata, and vendor advisory mapping for this CVE. If live patching is used, confirm the relevant live patch is loaded and active. Review kernel logs after update or reboot to ensure there are no recurring general protection faults, KASAN null-ptr-deref reports, or stack traces referencing bpf_sk_storage_clone, bpf_sk_storage_diag_put_all, bpf_sk_storage_diag_put, or net/core/bpf_sk_storage.c. Where feasible in a staging environment, run representative BPF, socket, and connection-heavy workloads to confirm stability after patching.
Typical attack path
- Identify a Linux system running a kernel build that contains the vulnerable BPF socket storage implementation.
- Obtain local execution capability or another path to exercise BPF socket storage and high-volume socket lifecycle activity.
- Create or manipulate BPF socket storage state associated with sockets.
- Generate concurrent socket clone, connection handling, diagnostic, and teardown activity to race storage unlinking against RCU readers.
- Trigger the NULL pointer dereference in bpf_sk_storage_clone() or bpf_sk_storage_diag_put_all().
- Cause a kernel oops, panic, service disruption, or host reboot depending on kernel panic settings and workload resilience.
How to detect it
To determine whether this was already triggered, review historical kernel logs, system journals, crash dumps, hypervisor restart events, and monitoring alerts for kernel oops, panic, general protection fault, or KASAN reports involving BPF socket storage functions. Relevant log sources include dmesg, /var/log/kern.log, /var/log/messages, journalctl -k, crash dump infrastructure such as kdump/vmcore, endpoint telemetry that records kernel panics, and orchestration logs showing unexpected node reboots. Focus on stack traces containing bpf_sk_storage_clone, bpf_sk_storage_diag_put_all, bpf_sk_storage_diag_put, sk_clone, inet_csk_clone_lock, tcp_create_openreq_child, tcp_v4_syn_recv_sock, tcp_check_req, or tcp_v4_rcv. Also correlate any crash with bursts of local BPF activity, socket diagnostic tooling, high connection churn, container workload changes, or unexplained service/node restarts. These indicators show the vulnerable condition may have been hit, but they do not by themselves prove malicious exploitation because the bug can plausibly be triggered by benign race conditions or stress workloads.
- bpf_sk_storage_clone
- bpf_sk_storage_diag_put_all
- bpf_sk_storage_diag_put
- net/core/bpf_sk_storage.c
- bpf_selem_unlink_nofail
- KASAN: null-ptr-deref
- general protection fault, probably for non-canonical address
- RIP: 0010:bpf_sk_storage_clone
- sk_clone+
- inet_csk_clone_lock+
- tcp_create_openreq_child+
- tcp_v4_syn_recv_sock+
- tcp_check_req+
- tcp_v4_rcv+
- kernel NULL pointer dereference
- kernel panic - not syncing
What your security team should do
- Inventory Linux systems by running kernel version and distribution package level, prioritizing internet-facing servers, container hosts, Kubernetes nodes, load balancers, and multi-tenant compute platforms.
- Patch affected kernels using vendor-supplied fixed packages and schedule required reboots or live-patch activation as soon as operationally practical.
- If patching is delayed, restrict untrusted local access and disable or restrict unprivileged BPF where compatible with business workloads.
- Monitor kernel logs and centralized logging for crashes or oops reports referencing BPF socket storage functions.
- Treat unexplained host reboots, kernel panics, or repeated network-stack crashes on vulnerable kernels as potential exploitation or stress-triggered vulnerability events.
- Track vendor advisories for exact fixed versions because no product-specific fixed versions were supplied in the input.
- Do not over-prioritize ahead of known exploited remote code execution issues solely on exploit likelihood: current EPSS is low, exploit maturity is reported as none, and the issue is not in CISA KEV.
The record
In the Linux kernel, the following vulnerability has been resolved: bpf: Fix NULL pointer dereference in bpf_sk_storage_clone and diag paths bpf_selem_unlink_nofail() sets SDATA(selem)->smap to NULL before removing the selem from the storage hlist. A concurrent RCU reader in bpf_sk_storage_clone() can observe the selem still on the list with smap already NULL, causing a NULL pointer dereference. general protection fault, probably for non-canonical address 0xdffffc000000000a: KASAN: null-ptr-deref in range [0x0000000000000050-0x0000000000000057] RIP: 0010:bpf_sk_storage_clone+0x1cd/0xaa0 net/core/bpf_sk_storage.c:174 Call Trace: <IRQ> sk_clone+0xfed/0x1980 net/core/sock.c:2591 inet_csk_clone_lock+0x30/0x760 net/ipv4/inet_connection_sock.c:1222 tcp_create_openreq_child+0x35/0x2680 net/ipv4/tcp_minisocks.c:571 tcp_v4_syn_recv_sock+0x123/0xf90 net/ipv4/tcp_ipv4.c:1729 tcp_check_req+0x8e1/0x2580 include/net/tcp.h:855 tcp_v4_rcv+0x1845/0x3b80 net/ipv4/tcp_ipv4.c:2347 Add a NULL check for smap in bpf_sk_storage_clone(). bpf_sk_storage_diag_put_all() has the same issue. Add a NULL check and pass the validated smap directly to diag_get(), which is refactored to take smap as a parameter instead of reading it internally. bpf_sk_storage_diag_put() uses diag->maps[i] which is always valid under its refcount, so diag->maps[i] is passed directly to diag_get().
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-112405 Pillow is a Python imaging library. CWE-476
- CVE-2026-112392 Pillow is a Python imaging library. CWE-476
- CVE-2026-100348 kin-openapi is a Go project for handling OpenAPI files. CWE-476
- CVE-2026-100349 kin-openapi is a Go project for handling OpenAPI files. CWE-476
- CVE-2026-109280 ImageMagick 7.1.0-20 before 7.1.2-32 contains a use after free vulnerability in the -fx… CWE-476
- CVE-2026-109272 ImageMagick 7.1.1-31 before 7.1.2-32 contains a NULL pointer dereference in the… CWE-476
- CVE-2026-109258 ImageMagick 7.1.0-20 before 7.1.2-32 contains an invalid memory free vulnerability in the… CWE-476
- CVE-2026-107655 A flaw was found in CUPS. CWE-476