CVE-2024-58100
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
05/05/2025
Last modified:
10/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
bpf: check changes_pkt_data property for extension programs<br />
<br />
When processing calls to global sub-programs, verifier decides whether<br />
to invalidate all packet pointers in current state depending on the<br />
changes_pkt_data property of the global sub-program.<br />
<br />
Because of this, an extension program replacing a global sub-program<br />
must be compatible with changes_pkt_data property of the sub-program<br />
being replaced.<br />
<br />
This commit:<br />
- adds changes_pkt_data flag to struct bpf_prog_aux:<br />
- this flag is set in check_cfg() for main sub-program;<br />
- in jit_subprogs() for other sub-programs;<br />
- modifies bpf_check_attach_btf_id() to check changes_pkt_data flag;<br />
- moves call to check_attach_btf_id() after the call to check_cfg(),<br />
because it needs changes_pkt_data flag to be set:<br />
<br />
bpf_check:<br />
... ...<br />
- check_attach_btf_id resolve_pseudo_ldimm64<br />
resolve_pseudo_ldimm64 --> bpf_prog_is_offloaded<br />
bpf_prog_is_offloaded check_cfg<br />
check_cfg + check_attach_btf_id<br />
... ...<br />
<br />
The following fields are set by check_attach_btf_id():<br />
- env->ops<br />
- prog->aux->attach_btf_trace<br />
- prog->aux->attach_func_name<br />
- prog->aux->attach_func_proto<br />
- prog->aux->dst_trampoline<br />
- prog->aux->mod<br />
- prog->aux->saved_dst_attach_type<br />
- prog->aux->saved_dst_prog_type<br />
- prog->expected_attach_type<br />
<br />
Neither of these fields are used by resolve_pseudo_ldimm64() or<br />
bpf_prog_offload_verifier_prep() (for netronome and netdevsim<br />
drivers), so the reordering is safe.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.6 (including) | 6.6.90 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.25 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.13:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.13:rc2:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



