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

bpf: don't downgrade half-dead scalar zero spills to STACK_ZERO

states.c:__clean_func_state() can downgrade scalar zero spill to
STACK_ZERO in the following case:

*(u64 *)(r10 - 8) = 0;
... checkpoint ...
r1 = *(u32 *)(r10 - 4);
... no reads from r10-8 ...

Here 4 bytes at r10-8 are dead and verifier changes scalar spill to a
combination: 0000pppp (p stands for poison). Such a change breaks
precision propagation chains. All places that produce STACK_ZERO
should call bpf_mark_chain_precision() for the zero source.

This patch fixes the bug in a simplest way possible:
avoids converting stack spills of zero to STACK_ZERO.
Two smarter approaches are possible:
- do bpf_mark_chain_precision() from __clean_func_state()
- check slot liveness information in check_stack_write_fixed_off()

I investigated both and the changes required are a bit tricky,
hence go with a simple fix for the time being.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Potential BPF Verification Bypass
Action: Patch Immediately
AI Analysis

Impact

In the Linux kernel, a flaw in the BPF verifier incorrectly downgrades a scalar zero spill that is not fully dead to a STACK_ZERO value. This logical error can break precision propagation chains and may cause the verifier to incorrectly accept otherwise invalid eBPF programs. The description does not explicitly state that privilege escalation is possible, but a malformed BPF program that bypasses verification could potentially execute malicious code in the kernel context. This potential impact is inferred and not directly confirmed.

Affected Systems

All Linux kernel releases that have not incorporated the patch note outlined in the references are affected. The vendors listed are Linux:Linux, and the product impacted is the Linux kernel. No specific version range is supplied; therefore, any kernel version that has not yet applied the fix is considered vulnerable.

Risk and Exploitability

The CVSS score is not provided, but the flaw resides in core kernel verification logic, implying a high severity potential for local users capable of loading eBPF programs. The EPSS score is not available, indicating limited publicly known exploitation, and the CVE is not listed in CISA KEV. Exploitation would require crafting a tailored BPF program and is inferred to be possible in environments permitting unrestricted BPF loading. Attack likelihood is uncertain but could be moderate to high in such environments.

Generated by OpenCVE AI on September 25, 2026 at 12:49 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the fix for CVE-2026-98132.
  • If a kernel update cannot be applied immediately, disable user-space eBPF program loading by setting sysctl kernel.bpf.disable_loader=1 and restrict /dev/bpf access for unprivileged users.
  • Configure BPF device permissions or place the BPF subsystem in a dedicated group, adjusting /etc/udev/rules.d or sysfs rules so that only privileged processes can load eBPF programs.

Generated by OpenCVE AI on September 25, 2026 at 12:49 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Weaknesses CWE-284

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bpf: don't downgrade half-dead scalar zero spills to STACK_ZERO states.c:__clean_func_state() can downgrade scalar zero spill to STACK_ZERO in the following case: *(u64 *)(r10 - 8) = 0; ... checkpoint ... r1 = *(u32 *)(r10 - 4); ... no reads from r10-8 ... Here 4 bytes at r10-8 are dead and verifier changes scalar spill to a combination: 0000pppp (p stands for poison). Such a change breaks precision propagation chains. All places that produce STACK_ZERO should call bpf_mark_chain_precision() for the zero source. This patch fixes the bug in a simplest way possible: avoids converting stack spills of zero to STACK_ZERO. Two smarter approaches are possible: - do bpf_mark_chain_precision() from __clean_func_state() - check slot liveness information in check_stack_write_fixed_off() I investigated both and the changes required are a bit tricky, hence go with a simple fix for the time being.
Title bpf: don't downgrade half-dead scalar zero spills to STACK_ZERO
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:36:11.662Z

Reserved: 2026-09-25T10:25:14.318Z

Link: CVE-2026-98132

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-98132

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T13:00:15Z

Weaknesses