All vulnerabilities
CVE-2026-98132

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

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.11%Chance of exploitation activity in the next 30 days, higher than 1% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in436fa689630b741a77ef8c4a6f426479affd5bacAlso 2f3536bff8823d3c5fdbbe15e17bfca696cc2b2eCVE List
Published25 Sep 2026Updated 19 Oct 2026CVE List

What fixes it

  • 436fa689630b741a77ef8c4a6f426479affd5bacLinuxCVE List
  • 2f3536bff8823d3c5fdbbe15e17bfca696cc2b2eLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

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.

Text from CVE List

Affected versions 6

  • Linuxaffected: be23266b4a08540aa43d8503a2ea10247c8daebe before 436fa689630b741a77ef8c4a6f426479affd5bacCVE List
  • Linuxaffected: be23266b4a08540aa43d8503a2ea10247c8daebe before 2f3536bff8823d3c5fdbbe15e17bfca696cc2b2eCVE List
  • Linuxaffected: 7.1CVE List
  • Linuxunaffected: all versions before 7.1CVE List
  • Linuxunaffected: 7.2.7 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 2