CyberRota Analysis
AI-GeneratedThe vulnerability affects the Linux kernel's handling of BPF (Berkeley Packet Filter) storage during process forking, specifically when the `copy_process()` function can exit prematurely before initializing the `bpf_storage` member of a task structure. This flaw can result in use-after-free (UAF) conditions and potential kernel hangs, posing a significant risk to system stability. Organizations using Linux systems that rely on BPF for task management should prioritize addressing this vulnerability to prevent exploitation and maintain operational integrity.
Original NVD Description
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.