Skip to content
OpenAdvisories
High · 7.8 Public exploit CVE-2026-31413 EUVD-2026-21717GHSA-q7pg-xjgf-wr6f

bpf: Fix unsound scalar forking in maybe_fork_scalars() for BPF_OR

Published Apr 12, 2026 · Updated Aug 5, 2026 · Assigned by Linux

Vendor: Linux Product: Linux Package: linux Package: linux Package: linux-allwinner-5.19 Package: linux-aws Package: linux-aws-5.0 Package: linux-aws-5.11 Package: linux-aws-5.13 Package: linux-aws-5.19 Package: linux-aws-5.3 Package: linux-aws-5.8 Package: linux-aws-6.14 Package: linux-aws-6.2 Package: linux-aws-6.5 Package: linux-aws-6.8 Package: linux-aws-fips Package: linux-azure Package: linux-azure-5.11 Package: linux-azure-5.13 Package: linux-azure-5.19 Package: linux-azure-5.3 Package: linux-azure-5.8 Package: linux-azure-6.11 Package: linux-azure-6.2 Package: linux-azure-6.5 Package: linux-azure-edge Package: linux-azure-fde Package: linux-azure-fde-5.19 Package: linux-azure-fde-6.2 Package: linux-azure-fips Package: linux-azure-nvidia Package: linux-bluefield Package: linux-fips Package: linux-gcp Package: linux-gcp-5.11 Package: linux-gcp-5.13 Package: linux-gcp-5.19 Package: linux-gcp-5.3 Package: linux-gcp-5.8 Package: linux-gcp-6.11 Package: linux-gcp-6.14 Package: linux-gcp-6.2 Package: linux-gcp-6.5 Package: linux-gcp-6.8 Package: linux-gcp-fips Package: linux-gke Package: linux-gke-4.15 Package: linux-gke-5.15 Package: linux-gke-5.4 Package: linux-gkeop Package: linux-gkeop-5.15 Package: linux-gkeop-5.4 Package: linux-hwe Package: linux-hwe-5.11 Package: linux-hwe-5.13 Package: linux-hwe-5.19 Package: linux-hwe-5.8 Package: linux-hwe-6.11 Package: linux-hwe-6.14 Package: linux-hwe-6.2 Package: linux-hwe-6.5 Package: linux-hwe-edge Package: linux-ibm Package: linux-ibm-6.8 Package: linux-intel-5.13 Package: linux-intel-iot-realtime Package: linux-lowlatency Package: linux-lowlatency-hwe-5.19 Package: linux-lowlatency-hwe-6.11 Package: linux-lowlatency-hwe-6.2 Package: linux-lowlatency-hwe-6.5 Package: linux-lowlatency-hwe-6.8 Package: linux-nvidia Package: linux-nvidia-6.11 Package: linux-nvidia-6.2 Package: linux-nvidia-6.5 Package: linux-nvidia-6.8 Package: linux-nvidia-lowlatency Package: linux-nvidia-tegra Package: linux-oem Package: linux-oem-5.10 Package: linux-oem-5.13 Package: linux-oem-5.14 Package: linux-oem-5.17 Package: linux-oem-5.6 Package: linux-oem-6.0 Package: linux-oem-6.1 Package: linux-oem-6.11 Package: linux-oem-6.14 Package: linux-oem-6.5 Package: linux-oem-6.8 Package: linux-oracle Package: linux-oracle-5.0 Package: linux-oracle-5.11 Package: linux-oracle-5.13 Package: linux-oracle-5.3 Package: linux-oracle-5.8 Package: linux-oracle-6.14 Package: linux-oracle-6.5 Package: linux-oracle-6.8 Package: linux-raspi Package: linux-raspi-realtime Package: linux-raspi2 Package: linux-realtime Package: linux-realtime-6.14 Package: linux-realtime-6.8 Package: linux-riscv Package: linux-riscv-5.11 Package: linux-riscv-5.19 Package: linux-riscv-5.8 Package: linux-riscv-6.14 Package: linux-riscv-6.5 Package: linux-riscv-6.8 Package: linux-starfive-5.19 Package: linux-starfive-6.2 Package: linux-starfive-6.5 Package: linux-vmware Package: linux-xilinx Platform: Linux Ecosystem: Debian Ecosystem: Ubuntu

Description

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

bpf: Fix unsound scalar forking in maybe_fork_scalars() for BPF_OR

maybe_fork_scalars() is called for both BPF_AND and BPF_OR when the
source operand is a constant. When dst has signed range [-1, 0], it
forks the verifier state: the pushed path gets dst = 0, the current
path gets dst = -1.

For BPF_AND this is correct: 0 & K == 0.
For BPF_OR this is wrong: 0 | K == K, not 0.

The pushed path therefore tracks dst as 0 when the runtime value is K,
producing an exploitable verifier/runtime divergence that allows
out-of-bounds map access.

Fix this by passing env->insn_idx (instead of env->insn_idx + 1) to
push_stack(), so the pushed path re-executes the ALU instruction with
dst = 0 and naturally computes the correct result for any opcode.

Affected products

VendorProductAffectedFixed
Linux Linux 6.12.75 – < 6.12.80, 6.18.16 – < 6.18.21, 6.19.6 – < 6.19.11 6.12.80

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 6.19.11-1 —
ReleasePackageFixed inAdvisory
Ubuntu Nvidia-BlueField 24.04 LTS linux-bluefield 6.8.0-1028.33 —
Ubuntu 24.04 LTS linux 6.8.0-136.136 USN-8567-1
Ubuntu 24.04 LTS linux-aws 6.8.0-1061.64 USN-8595-2
Ubuntu 24.04 LTS linux-gcp 6.8.0-1064.72 USN-8567-1
Ubuntu 24.04 LTS linux-gke 6.8.0-1059.67 USN-8567-1
Ubuntu 24.04 LTS linux-gkeop 6.8.0-1046.50 USN-8567-1
Ubuntu 24.04 LTS linux-ibm 6.8.0-1061.62 USN-8574-3
Ubuntu 24.04 LTS linux-lowlatency 6.8.0-136.136.2 USN-8574-2
Ubuntu 24.04 LTS linux-nvidia 6.8.0-1059.62 USN-8596-1
Ubuntu 24.04 LTS linux-nvidia-lowlatency 6.8.0-1059.62.1 USN-8596-1
Ubuntu 24.04 LTS linux-nvidia-tegra 6.8.0-1030.31 USN-8574-3
Ubuntu 24.04 LTS linux-oracle 6.8.0-1058.61 USN-8574-2
Ubuntu 24.04 LTS linux-raspi 6.8.0-1061.65 USN-8665-1
Ubuntu 24.04 LTS linux-riscv +16 No fix yet —
Ubuntu 24.04 LTS linux-vmware 6.8.0-1008.8 —
Ubuntu 24.04 LTS linux-xilinx 6.8.0-1033.34 USN-8574-3
Ubuntu 22.04 LTS linux-aws-6.8 6.8.0-1061.64~22.04.1 USN-8595-3
Ubuntu 22.04 LTS linux-gcp-6.8 6.8.0-1064.72~22.04.1 USN-8567-1
Ubuntu 22.04 LTS linux-ibm-6.8 6.8.0-1061.62~22.04.1 USN-8574-3
Ubuntu 22.04 LTS linux-lowlatency-hwe-6.8 6.8.0-136.136.2~22.04.1 USN-8574-2
Ubuntu 22.04 LTS linux-nvidia-6.8 6.8.0-1059.62~22.04.1 USN-8596-1
Ubuntu 22.04 LTS linux-oracle-6.8 6.8.0-1058.61~22.04.1 USN-8595-1
Ubuntu 22.04 LTS linux-riscv +32 No fix yet —
Ubuntu 22.04 LTS linux-riscv-6.8 6.8.0-136.136~22.04.3 —
Ubuntu 20.04 LTS linux-gke +28 No fix yet —
Ubuntu 18.04 LTS linux-gcp +14 No fix yet —
Show 4 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu 16.04 LTS linux-hwe-edge No fix yet —
Ubuntu Pro Realtime 24.04 LTS linux-raspi-realtime 6.8.0-2050.52 USN-8665-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime 6.8.1-1056.57 USN-8567-1
Ubuntu Pro Realtime 24.04 LTS linux-realtime-6.14 No fix yet —
Ubuntu Pro Realtime 22.04 LTS linux-realtime-6.8 6.8.1-1056.57~22.04.2 USN-8567-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-aws-fips 6.8.0-1061.64+fips1 USN-8595-3
Ubuntu Pro FIPS-updates 24.04 LTS linux-azure-fips 6.8.0-1063.71+fips2 USN-8608-1
Ubuntu Pro FIPS-updates 24.04 LTS linux-fips 6.8.0-136.136+fips2 USN-8574-2
Ubuntu Pro FIPS-updates 24.04 LTS linux-gcp-fips 6.8.0-1064.72+fips1 USN-8574-1

Amazon Linux

ReleasePackageFixed inAdvisory
Amazon Linux 2023 kernel-livepatch-6.18.25-52.107 +1 1:1.0-0.amzn2023 ALAS2023-2026-1746, ALAS2023-2026-1646
Amazon Linux 2023 perf6.12 +14 1:6.12.80-105.147.amzn2023 ALAS2023-2026-1646
Amazon Linux 2023 perf6.18 +11 1:6.18.25-52.107.amzn2023 ALAS2023-2026-1746

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 9 kernel-uek +34 6.12.0-202.76.4.1.el10uek ELSA-2026-50372, ELSA-2026-50260

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 15

References