CVE-2026-72110 in Linuxinfo

Summary

by MITRE • 08/15/2026

In the Linux kernel, the following vulnerability has been resolved:

bpf,fork: wipe ->bpf_storage before bailouts that access it

Currently, copy_process() can bail out to free_task() before p->bpf_storage has been initialized, with this call graph (shown here for the !CONFIG_MEMCG case):

copy_process dup_task_struct arch_dup_task_struct [copies the entire task_struct, including ->bpf_storage member]
[RLIMIT_NPROC check fails]
delayed_free_task free_task bpf_task_storage_free rcu_dereference(task->bpf_storage) bpf_local_storage_destroy

In this case, the nascent task's ->bpf_storage member that bpf_local_storage_destroy() operates on is a plain copy of the parent's ->bpf_storage pointer, not a real initialized pointer. This leads to badness (kernel hangs, UAF).

This is reachable as long as the process calling fork() has been inserted into a task storage map.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Analysis

by VulDB Data Team • 08/15/2026

The vulnerability described represents a critical race condition and memory management flaw within the Linux kernel's eBPF subsystem, specifically affecting the BPF forking mechanism during process creation. This issue stems from improper handling of bpf_storage data structures during the copy_process() function execution path, where premature bailouts can occur before proper initialization of task-specific storage components. The flaw manifests when a process attempts to fork while already registered in a BPF task storage map, creating a scenario where the kernel's memory management logic fails to properly initialize the bpf_storage member of newly created tasks. The technical root cause involves the arch_dup_task_struct function which performs a complete copy of the entire task_struct including the ->bpf_storage member, yet subsequent validation checks like RLIMIT_NPROC can trigger early exits that bypass proper initialization sequences.

The operational impact of this vulnerability extends beyond simple memory corruption to potentially compromise system stability and security integrity. When copy_process() bails out due to resource limits or other constraints before completing the proper initialization of ->bpf_storage, the freed task structure contains a dangling pointer that references the parent's bpf_storage data rather than a properly allocated and initialized storage area. This creates a use-after-free condition that can result in kernel hangs, system crashes, or more insidiously, allow for privilege escalation attacks through controlled memory corruption. The vulnerability is particularly dangerous because it leverages legitimate BPF functionality while exploiting the timing gap between task duplication and proper initialization of BPF-specific data structures. This scenario falls under CWE-415: Double Free and CWE-476: NULL Pointer Dereference categories, as the system attempts to operate on uninitialized or improperly freed memory references.

The attack surface for this vulnerability is significant given that it can be triggered by any process that has been inserted into a BPF task storage map and subsequently attempts to fork. The exploitation requires minimal privileges since it targets the kernel's internal memory management rather than user-space processes, making it particularly concerning for containerized environments and systems where BPF is extensively used for monitoring or security enforcement. The fix implemented addresses this by ensuring that ->bpf_storage is properly wiped or initialized before any bailout conditions can occur, preventing the scenario where a copy of the parent's bpf_storage pointer is incorrectly dereferenced during cleanup operations. This remediation aligns with ATT&CK technique T1059.006: Command and Scripting Interpreter: Python, as it prevents malicious actors from leveraging process forking mechanisms to trigger kernel memory corruption through BPF subsystem exploitation.

The fix specifically targets the copy_process() function's execution path by ensuring that bpf_storage is properly managed even when early exits occur during fork operations. This involves clearing or resetting the ->bpf_storage member before any potential bailout conditions can be reached, eliminating the possibility of accessing uninitialized or stale storage references. The solution prevents the delayed_free_task path from operating on corrupted data structures by ensuring proper initialization boundaries are maintained throughout the process creation lifecycle. This vulnerability demonstrates how complex kernel subsystems like BPF, when integrated with core memory management functions, can create subtle race conditions that are difficult to detect through conventional testing approaches and require deep understanding of both the specific subsystems involved and their interaction patterns. The resolution ensures that the kernel's BPF storage subsystem maintains integrity even under stress conditions where process creation fails due to resource constraints or validation failures.

The broader implications of this vulnerability extend to system hardening practices and kernel security model assumptions, particularly in environments where eBPF is used extensively for security monitoring, network filtering, or performance tracking. Systems that rely heavily on BPF task storage maps for operational monitoring may be vulnerable to denial-of-service attacks or privilege escalation attempts if this race condition is exploited. The fix reinforces proper kernel memory management practices and demonstrates the importance of ensuring that all data structure initialization paths are properly guarded against premature exits or error conditions, particularly in high-frequency operations like process creation where timing-sensitive resources are involved. This vulnerability highlights the necessity for comprehensive testing of error paths in kernel subsystems and the critical nature of maintaining consistency between data structure copying and initialization sequences across all execution branches.

Responsible

Linux

Reservation

08/09/2026

Disclosure

08/15/2026

Moderation

accepted

CPE

ready

EPSS

0.00209

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!