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

bpf: Preserve inner map identity in callback frames

Callback frame constructors initialize map-typed argument registers with
__mark_reg_known_zero() and then restore map_ptr. This clears map_uid,
which is the only field distinguishing inner maps that share an
inner_map_meta template.

When a timer callback invokes bpf_for_each_map_elem() on a second inner
map, both the saved first map and the second map value can reach the nested
callback as the same template with map_uid zero. bpf_timer_init() then
accepts pairing the timer from the second map with the first map.

The runtime records the first map in the timer without taking a reference.
Freeing that map does not find the timer stored in the second map, so a
later timer callback dereferences the freed map.

Copy map_uid from the same caller register as map_ptr when constructing
for-each, timer/workqueue, and task-work callback arguments. The existing
identity check can then reject mismatched inner maps while allowing a
callback value to be paired with its actual map.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Privilege Escalation
Action: Patch
AI Analysis

Impact

The vulnerability occurs in the Linux kernel BPF subsystem where callback frame constructors clear the map_uid field, the only distinguishing attribute for inner maps that share the same template. When a timer callback is executed twice on different inner maps, the reclaimed map_uid makes the runtimes believe they refer to the same map. This allows a second timer to associate itself with a map that has already been freed, resulting in a dereference of a freed map instance. The defect could lead to memory corruption and potentially grant an attacker kernel‑level code execution or privilege escalation capabilities.

Affected Systems

The flaw is present in the BPF component of the Linux kernel. While the exact kernel release numbers are not specified, any kernel that includes the described BPF map handling logic is potentially affected. System administrators should verify whether their deployed kernel version uses the unpatched BPF callback implementation.

Risk and Exploitability

The EPSS score is unavailable and the vulnerability is not listed in the CISA KEV catalog, so exploitation likelihood is unknown. Based on the description the attack vector would be local, requiring execution of a malicious BPF program that triggers the erroneous timer callback sequence. Because the flaw involves a use‑after‑free scenario, successful exploitation could lead to arbitrary code execution at kernel privilege, which is considered high severity. No CVSS score is provided, but the nature of the bug suggests it would likely rate severe if assessed.

Generated by OpenCVE AI on September 25, 2026 at 15:03 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel patch that implements "bpf: Preserve inner map identity in callback frames".
  • If a patch cannot be applied immediately, restrict or disable BPF timer callbacks and limit the capabilities of BPF programs that create inner maps from user space.
  • Monitor kernel logs for BPF‑related errors or access violations and investigate any anomalous behavior promptly.

Generated by OpenCVE AI on September 25, 2026 at 15:03 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: Preserve inner map identity in callback frames Callback frame constructors initialize map-typed argument registers with __mark_reg_known_zero() and then restore map_ptr. This clears map_uid, which is the only field distinguishing inner maps that share an inner_map_meta template. When a timer callback invokes bpf_for_each_map_elem() on a second inner map, both the saved first map and the second map value can reach the nested callback as the same template with map_uid zero. bpf_timer_init() then accepts pairing the timer from the second map with the first map. The runtime records the first map in the timer without taking a reference. Freeing that map does not find the timer stored in the second map, so a later timer callback dereferences the freed map. Copy map_uid from the same caller register as map_ptr when constructing for-each, timer/workqueue, and task-work callback arguments. The existing identity check can then reject mismatched inner maps while allowing a callback value to be paired with its actual map.
Title bpf: Preserve inner map identity in callback frames
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:23:48.761Z

Reserved: 2026-09-25T10:19:56.070Z

Link: CVE-2026-98033

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:32.003

Modified: 2026-09-25T11:17:32.003

Link: CVE-2026-98033

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T15:15:14Z

Weaknesses