CVE-2026-98033: bpf: Preserve inner map identity in callback frames
bpf: Preserve inner map identity in callback frames
Affected Software
Event History
Frequently Asked Questions
What conditions are required to trigger the use-after-free?
A BPF program must use callback paths involving inner maps that share an inner_map_meta template, allowing a timer from one inner map to be paired with another. The affected flow includes a timer callback invoking bpf_for_each_map_elem() on a second inner map, followed by freeing the first map while its timer is recorded in the second map.
What is the security impact after the mismatched maps are accepted?
The runtime can retain a pointer to the first map in a timer without taking a reference. Because the timer is stored under the second map, freeing the first map does not locate and cancel that timer, and a later timer callback can dereference freed memory.
Which callback argument types are involved in the fix?
The fix preserves map_uid when constructing callback arguments for for-each, timer/workqueue, and task-work callbacks. This lets the existing identity check distinguish inner maps that use the same template and reject mismatched pairings.