CVE-2024-58237
kernel: bpf: consider that tail calls invalidate packet pointers
Severity
ModerateRed Hat Product Security
CVSS 3.1
Review impact separately from score.
Published · May 5, 2025
Updated · October 30, 2026
Description
In the Linux kernel, the following vulnerability has been resolved:
bpf: consider that tail calls invalidate packet pointers
Tail-called programs could execute any of the helpers that invalidate packet pointers. Hence, conservatively assume that each tail call invalidates packet pointers.
Making the change in bpf_helper_changes_pkt_data() automatically makes use of check_cfg() logic that computes 'changes_pkt_data' effect for global sub-programs, such that the following program could be rejected:
int tail_call(struct __sk_buff *sk)
{
bpf_tail_call_static(sk, &jmp_table, 0);
return 0;
}
SEC("tc")
int not_safe(struct __sk_buff *sk)
{
int *p = (void *)(long)sk->data;
... make p valid ...
tail_call(sk);
*p = 42; /* this is unsafe */
...
}
The tc_bpf2bpf.c:subprog_tc() needs change: mark it as a function that can invalidate packet pointers. Otherwise, it can't be freplaced with tailcall_freplace.c:entry_freplace() that does a tail call.
Statement
This vulnerability is rated as Moderate impact for Red Hat because exploitation requires elevated privileges, such as CAP_BPF or CAP_NET_ADMIN, to load and attach specialized eBPF programs. In standard Red Hat Enterprise Linux configurations, unprivileged eBPF execution is disabled by default, preventing unprivileged local users from triggering the flaw. The issue occurs because the eBPF verifier fails to recognize that tail calls can alter packet buffers, potentially leading to stale pointer dereferences and a kernel crash.
CVSS score applicability
The CVSS score(s) listed for this vulnerability do not reflect the associated product's status, and are included for informational purposes to better understand the severity of this vulnerability.
Mitigation
No mitigation is specified in collected source.
CVSS / CWE
CVSS 3.1 · 6CVSS:3.1/AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:H
CWE-20 · Improper Input Validation