GPU VulnDB

Database/Kernel, userspace & hypervisor

Linux kernel bpf x86: trampoline under-allocates the save area for __int128 arguments

CVSS 7.8CVE-2026-90358Kernel, userspace & hypervisorcurated

Impact

btf_distill_func_proto() permits function arguments up to 16 bytes, so a 128-bit scalar such as __int128 arrives at the x86 trampoline with arg_size == 16, but the trampoline assumed one register per argument. The register save area is therefore too small and save_args() writes past it into adjacent kernel stack slots - a stack overwrite in generated trampoline code, scored 7.8 locally with full impact. Reaching it requires attaching a BPF trampoline program (fentry/fexit style) to a kernel function whose prototype takes a 128-bit scalar, so the realistic actor is a local context with BPF attach rights rather than a tenant pod with no capabilities. The fix computes register count from arg_size for every argument.

Who can reach it

Local: a context able to load and attach a BPF trampoline program (CAP_BPF/CAP_SYS_ADMIN in practice) targeting a kernel function with a 128-bit scalar argument. x86-64 hosts only; no remote vector.

What to do

Update to a stable kernel with the listed commits and reboot the node. Interim control is capability hygiene: do not grant BPF attach rights to workloads, and keep tracing agents that attach fentry programs under review. The record names no fixed vendor release, only the stable commits.

References

Related entries

All Kernel, userspace & hypervisor entries

This entry is curated: imported from vendor advisories with machine assistance, not yet individually verified. Confirm against your vendor's advisory before acting, and report anything wrong.