In the Linux kernel, the following vulnerability has been resolved: bpf,fork: wipe ->bpf_storage...
🔗 CVE IDs covered (1)
📋 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.
🔗 References (7)
- https://nvd.nist.gov/vuln/detail/CVE-2026-72110
- https://git.kernel.org/stable/c/43f0005f81b8ce3be962d653cde8db9022f1e9b0
- https://git.kernel.org/stable/c/9b51a6155d14389876916726430da30eabb1d4ed
- https://git.kernel.org/stable/c/9cff220ddb65b022cc668bb652200742476e744c
- https://git.kernel.org/stable/c/c3fd6f28c7ce1142a3b23dbb840eaa4777de1d74
- https://git.kernel.org/stable/c/c4f626ddf2350652ad2f79daf1f10847f3f6eabd
- https://github.com/advisories/GHSA-9wff-g7fh-998r