In the Linux kernel, the following vulnerability has been resolved:
s390/bpf: Fix bpf_plt pointer arithmetic
Kui-Feng Lee reported a crash on s390x triggered by the
dummy_st_ops/dummy_init_ptr_arg test [1]:
[<0000000000000002>] 0x2
[<00000000009d5cde>] bpf_struct_ops_test_run+0x156/0x250
[<000000000033145a>] __sys_bpf+0xa1a/0xd00
[<00000000003319dc>] __s390x_sys_bpf+0x44/0x50
[<0000000000c4382c>] __do_syscall+0x244/0x300
[<0000000000c59a40>] system_call+0x70/0x98
This is caused by GCC moving memcpy() after assignments in
bpf_jit_plt(), resulting in NULL pointers being written instead of
the return and the target addresses.
Looking at the GCC internals, the reordering is allowed because the
alias analysis thinks that the memcpy() destination and the assignments'
left-hand-sides are based on different objects: new_plt and
bpf_plt_ret/bpf_plt_target respectively, and therefore they cannot
alias.
This is in turn due to a violation of the C standard:
When two pointers are subtracted, both shall point to elements of the
same array object, or one past the last element of the array object
...
From the C's perspective, bpf_plt_ret and bpf_plt are distinct objects
and cannot be subtracted. In the practical terms, doing so confuses the
GCC's alias analysis.
The code was written this way in order to let the C side know a few
offsets defined in the assembly. While nice, this is by no means
necessary. Fix the noncompliance by hardcoding these offsets.
[1] https://lore.kernel.org/bpf/c9923c1d-971d-4022-8dc8-1364e929d34c@gmail.com/
Security readout for executives and security teams
Plain-English summary
This Linux kernel issue affects the s390 BPF implementation. A compiler optimization can cause the kernel to write NULL branch addresses, leading to a crash in a BPF struct-ops test path. The provided sources do not show active exploitation or a business impact beyond potential kernel instability on affected s390x systems.
Executive priority
Treat this as a targeted kernel stability issue, not a broad emergency from the available evidence. Prioritize patch validation for s390x infrastructure and regulated production systems, especially where outages have business impact. Escalate only if vendor advisories add stronger impact or exploitation evidence.
Technical view
The flaw is in s390/bpf bpf_jit_plt() pointer arithmetic. The code subtracted pointers from distinct C objects, confusing GCC alias analysis. GCC could move memcpy() after assignments, causing NULL return and target pointers. The fix removes the noncompliant calculation and hardcodes assembly-defined offsets.
Likely exposure
Likely exposure is limited to Linux systems on IBM s390x architecture using affected kernel builds with the s390 BPF JIT code. The bundle lists Linux kernel versions including 6.3, 6.6.26, 6.8.5, and 6.9, but does not fully preserve version-range semantics.
Exploitation context
The source bundle marks this CVE as not in KEV and provides no cited evidence of active exploitation. The reported trigger was a BPF selftest-related crash on s390x. The sources do not establish remote exploitability, required privileges, confidentiality impact, or an abuse path.
Researcher notes
Root cause is C-standard-noncompliant pointer subtraction between distinct objects in s390 BPF JIT PLT handling. GCC alias analysis treated the objects as non-aliasing and reordered memcpy, leaving NULL return and target addresses. The documented fix replaces derived offsets with hardcoded assembly offsets.
Mitigation direction
Apply distribution kernel updates that include the cited stable Linux fixes.
Prioritize s390x Linux hosts using BPF-heavy or custom kernel workloads.
Check vendor advisories for exact affected and fixed package versions.
For unpatched systems, request vendor-approved compensating controls.
Avoid direct wrangler-style assumptions; use vendor kernel guidance only.
Validation and detection
Inventory Linux hosts running on s390x architecture.
Map kernel versions against vendor advisories and fixed package changelogs.
Confirm patched kernels include one of the cited stable commits.
Review kernel logs for BPF-related crashes or oops reports.
Regression-test BPF workloads after kernel updates.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2024-35917 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.